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.