IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème d'insertion de données dans ma base de données


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut Problème d'insertion de données dans ma base de données
    Bonjour,

    J'ai effectivement déjà eu un problème similaire, mais il était tout bête celui là , contrairement à celui que j'ai en cours...

    Car j'ai un formulaire, et quand je valide à l'aide du bouton, un programme récupère les données et les insère dans la base de données...

    Mais voilà une des données pose problème...
    Car j'aimerais choisir entre lui affecter une valeur et lui affecter la valeur null mais apparemment ni l'un ni l'autre ne fonctionne...

    L'erreur quand je veux lui affecter une valeur, ou une valeur null :
    Une valeur explicite de la colonne identité de la table 'PROPERTY' ne peut être spécifiée que si la liste des colonnes est utilisée et si IDENTITY_INSERT est défini sur ON.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    protected void bt_insertion_Click(object sender, EventArgs e)
            {
                int code = int.Parse(tb_id.Text);
                string nom = tb_namep.Text;
                int idparent = int.Parse(ddl_choixparent.SelectedValue);
                int metaSy = 0;
                object valeur1;
    
    
                SqlConnection connexion = new SqlConnection(System.Configuration.ConfigurationManager.
                ConnectionStrings["connectString1"].ConnectionString);
                connexion.Open();
    
    
                // requête Insert/Update des informations dans la table du mois en cours REPLACE autorisé avce MySql ;)
    
                string query = "INSERT INTO PROPERTY values (@code, @nom, @idparent, @metaSy)";
    
                lbl_requete.Text = query;
    
                using (SqlConnection Connection = new SqlConnection(System.Configuration.ConfigurationManager.
                ConnectionStrings["connectString1"].ConnectionString))
                {
    
                    SqlCommand cmdInsert = new SqlCommand(query, Connection);
    
                    // commande SQL insertion dans table
    
                    cmdInsert.CommandText = query;
    
    
                    // "paramètrage" des paramètres
    
                    cmdInsert.Parameters.Add("@code", SqlDbType.Int); // Type à remplacer par le type adéquat
                    cmdInsert.Parameters.Add("@nom", SqlDbType.VarChar, 50); // Type à remplacer par le type adéquat
                    cmdInsert.Parameters.Add("@idparent", SqlDbType.Int); // Type à remplacer par le type adéquat
                    cmdInsert.Parameters.Add("@metaSy", SqlDbType.Int); // Type à remplacer par le type adéquat
    
    
                    // vérifie si la checkbox est coché
    
                    if (ckb_idparent.Checked == true)
                    {
                        valeur1 = DBNull.Value;
                    }
                    else
                    {
                        valeur1 = idparent;
                    }
    
    
                    // récupèration des valeurs des paramètres
    
                    cmdInsert.Parameters["@code"].Value = code; // val1 peut-être une variable
                    cmdInsert.Parameters["@nom"].Value = nom; // ..
                    cmdInsert.Parameters["@idparent"].Value = valeur1;
                    cmdInsert.Parameters["@metaSy"].Value = metaSy;
    
    
                    // connexion
    
                    Connection.Open();
    
                    if (Connection.State == System.Data.ConnectionState.Open)
    
                    // si la connexion est ouverte
                    {
    
                        // et on fait l'insertion
                        cmdInsert.ExecuteNonQuery();
    
                        // fermeture connection
    
                        Connection.Close();
    
                    }
    
    
                }
            }
    (En violet le code qui fait une erreur à chaque fois.)

    Avez-vous une idée de comment je peux résoudre mon problème (mise à part changer le type de ma colonne) ?

    En vous remerciant.

  2. #2
    Membre éclairé Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    @CODE doit être une clé primaire en identity (comprendre : qui s'auto incrémente à chaque insertion toute seule).
    Si vous voulez éviter l'erreur, faites votre insert sans modifier @CODE ou alors passez en mode IDENTITY_INSERT ON comme l'erreur vous le suggère.
    Mais entre nous, si vous ne savez pas ce que c'est ne faites pas cette manipulation, elle est à la fois hasardeuse et dangereuse si plusieurs exécutions se font en même temps.


    EDIT : Quand je dis "sans modifier" je voulais dire "ne pas prendre en compte".

  3. #3
    Membre éclairé Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Par défaut
    Bonjour,

    Merci pour ta réponse SetaSensei, c'était bien ça mon problème.

    Ahh....... Problème de communication entre collègues... J'aurais pu éviter de vous embêter, pour rien.
    Mais bon il n'était pas possible que je puisse le voir de moi-même dans la base de données.........

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/04/2015, 15h01
  2. Réponses: 1
    Dernier message: 26/06/2013, 17h21
  3. Problème d'insertion des données dans ma base de données
    Par daniel1985 dans le forum Général Python
    Réponses: 1
    Dernier message: 18/12/2012, 17h52
  4. [MySQL] Problème d'insertion des accents dans une base de donnée MYSQL
    Par maroon1970 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2011, 18h35
  5. nouveau problême d'insertion des données dans la base de données
    Par tchimou dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/03/2007, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo