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à :oops:, 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 :
Citation:
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:
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.