zanzant411
Messages postés5Date d'inscriptionvendredi 9 janvier 2015StatutMembreDernière intervention 1 septembre 2015
-
Modifié par NHenry le 1/09/2015 à 18:15
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 2017
-
3 sept. 2015 à 11:20
bonjours,
j'ai un problème lors de l'ajout d'une ligne dans ma table mysql
voila mon code:
private void button1_Click(object sender, EventArgs e)
{ int t=1;
DataTable dt3 = new DataTable();
Connexion.conn.Open();
MySqlCommand comm1 = new MySqlCommand("Select id from equipement where equipement.nom='" + comboBox2.SelectedValue + "'", Connexion.conn);
Connexion.reader = comm1.ExecuteReader();
while (Connexion.reader.Read())
{
t = Convert.ToInt16(Connexion.reader.GetValue(0));
}
Console.Write(t);
MySqlCommand comm= new MySqlCommand("insert into echaffaudage(hauteur, largeur,longueur,date_montage,datedemontage,id_atelier) values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+dateTimePicker1.Value+"','"+dateTimePicker2.Value+"','"+t+"')");
comm.ExecuteNonQuery();
Connexion.conn.Close();
}
quand je l'execute il m'affiche l'erreur "connection must be open and valid"
merci d'avance pour votre aide :)
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique). Explications disponibles ici : ICI
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179 3 sept. 2015 à 11:20
Bonjour,
Dans ta deuxième MySqlCommand tu ne lui donnes pas la connection à utiliser.
de plus,
pourquoi fais tu un while et un read alors que ton id doit être unique ?
Et aussi attention si le nom n'existe pas ou plus id vaudra 1 et tu vas mettre de brol dans ta table.
le code est plus simple comme ceci.
private void button1_Click(object sender, EventArgs e)
{
int? t = null;
Connexion.conn.Open();
MySqlCommand comm1 = new MySqlCommand("Select id from equipement where equipement.nom='" + comboBox2.SelectedValue + "'", Connexion.conn);
t = (int?)comm1.ExecuteScalar();
Console.Write(t);
if (t != null)
{
MySqlCommand comm= new MySqlCommand("insert into echaffaudage(hauteur, largeur,longueur,date_montage,datedemontage,id_atelier) values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+dateTimePicker1.Value+"','"+dateTimePicker2.Value+"','"+t+"')",Connexion.conn);
comm.ExecuteNonQuery();
}
Connexion.conn.Close();
}
tu peux aussi mettre un try catch au cas ou et tester si ta connection est fermée avant de l'ouvrir.