Bonjour,
Je suis actuellement entrain de développez une petite application afin de gérer des clients pour une ou des entreprises. J'utilise Visual Studio 2012 et je prévois d'utiliser mysql comme bdd par manque de moyen financier. J'ai crée une multitude de méthode pour gérer les existence ainsi que les ajout dans ma bdd.
comme on peut le voir dans ce bout de code je test l'existence d'un utilisateur en appelant la méthode ExistUser si il existe alors on passe au else sinon on ajoute l'utilisateur pour populer la table de correspondance entre un client et une entreprise. C'est dans cette méthode que l'erreur apparait. Le plus surprenant c'est que quand je test ma requête dans phpmyadmin aucun problème l'ajoute je fais correctement. je vous copie les méthode d'ajout du client ainsi que celle qui pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Boolean Client = ExistUser(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Maconnection); if (Client != true) { AddClient(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Maconnection); AddClienthasEntreprise(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Cb_Entreprise.Text, Maconnection); label5.Text = "Ajout effectué"; label5.BackColor = Color.Green; } else { AddClienthasEntreprise(Cb_Civiliter.Text, Tb_Nom.Text, Tb_Prenom.Text, mTb_IndicatifDom.Text, mTb_TelephoneDom.Text, mTb_IndicatifNat.Text, mTb_TelephoneNat.Text, mTb_IndicatifPro.Text, mTb_TelephonePro.Text, mTb_DateNaissance.Text, Tb_EmailPro.Text, Tb_EmailPrive.Text, Cb_Entreprise.Text, Maconnection); }Celle-ci est pour l'ajout du client.
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 public void AddClient(string Civilite, string Nom, string Prenom, string IndicatifTelDom, string TelDom, string IndicatifNat, string TelNat, string IndicatifPro, string TelPro, string DateNaissance, string emailpro, string emailprive, MySqlConnection maConnection) { try { MySqlCommand requete = maConnection.CreateCommand(); requete.CommandType = CommandType.Text; requete.CommandText = "INSERT INTO tblclient(fk_Civilite, fk_Nom, fk_Prenom, fk_Indicatifdom, fk_Telephonedom, fk_Indicatifnat, fk_Telephonenat, fk_Indicatifpro, fk_Telephonepro, fk_Datenaissance, fk_Emailpro, fk_Emailprive) VALUES ((SELECT ID FROM tblcivilité WHERE Civilite = @Civilite), (SELECT ID FROM tblnoms WHERE Nom = @nom), (SELECT ID FROM tblprenoms WHERE Prenom = @prenom), (SELECT ID FROM tblindicatifsdom WHERE Indicatif = @indicatifdom), (SELECT ID FROM tbltelephonesdom WHERE Telephone = @telephonedom), (SELECT ID FROM tblindicatifsnat WHERE Indicatif = @indicatifnat), (SELECT ID FROM tbltelephonesnat WHERE Telephone = @telephonenat), (SELECT ID FROM tblindicatifspro WHERE Indicatif = @indicatifpro), (SELECT ID FROM tbltelephonespro WHERE Telephone = @telephonepro), (SELECT ID FROM tbldatenaissances WHERE DateNaissance = @datenaissance), (SELECT ID FROM tblemailspro WHERE Email = @emailpro), (SELECT ID FROM tblemailsprive WHERE Email = @emailprive))"; MySqlParameter Civilité = new MySqlParameter("@Civilite", MySqlDbType.VarChar); Civilité.Value = Civilite; requete.Parameters.Add(Civilité); MySqlParameter nom = new MySqlParameter("@nom", MySqlDbType.VarChar); nom.Value = Nom; requete.Parameters.Add(nom); MySqlParameter prenom = new MySqlParameter("@prenom", MySqlDbType.VarChar); prenom.Value = Prenom; requete.Parameters.Add(prenom); MySqlParameter indicatifdom = new MySqlParameter("@Indicatifdom", MySqlDbType.VarChar); indicatifdom.Value = IndicatifTelDom; requete.Parameters.Add(indicatifdom); MySqlParameter telephonedom = new MySqlParameter("@telephonedom", MySqlDbType.VarChar); telephonedom.Value = TelDom; requete.Parameters.Add(telephonedom); MySqlParameter indicatifnat = new MySqlParameter("@indicatifnat", MySqlDbType.VarChar); indicatifnat.Value = IndicatifNat; requete.Parameters.Add(indicatifnat); MySqlParameter telephonenat = new MySqlParameter("@telephonenat", MySqlDbType.VarChar); telephonenat.Value = TelNat; requete.Parameters.Add(telephonenat); MySqlParameter indicatifpro = new MySqlParameter("@indicatifpro", MySqlDbType.VarChar); indicatifpro.Value = IndicatifPro; requete.Parameters.Add(indicatifpro); MySqlParameter telephonepro = new MySqlParameter("@telephonepro", MySqlDbType.VarChar); telephonepro.Value = TelPro; requete.Parameters.Add(telephonepro); MySqlParameter Date_Naissance = new MySqlParameter("@datenaissance", MySqlDbType.VarChar); Date_Naissance.Value = DateNaissance; requete.Parameters.Add(Date_Naissance); MySqlParameter EmailPro = new MySqlParameter("@emailpro", MySqlDbType.VarChar); EmailPro.Value = emailpro; requete.Parameters.Add(EmailPro); MySqlParameter EmailPrive = new MySqlParameter("@emailprive", MySqlDbType.VarChar); EmailPrive.Value = emailprive; requete.Parameters.Add(EmailPrive); requete.ExecuteNonQuery(); } catch (MySqlException Ex) { MessageBox.Show("Erreur SQL:\n" + Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
et c'est cette méthode qui effectue toute les instructions correctement jusqu'à
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 public void AddClienthasEntreprise(string Civilite, string Nom, string Prenom, string IndicatifTelDom, string TelDom, string IndicatiftelNat, string TelNat, string IndicatiftelPro, string TelPro, string DateNaissance, string emailpro, string emailprive, string EntrepriseName, MySqlConnection maConnection) { try { MySqlCommand requete = maConnection.CreateCommand(); requete.CommandType = CommandType.Text; requete.CommandText = "INSERT INTO tblclienthasentreprise (fk_Client, fk_Entreprise) VALUES ((SELECT tblclient.ID FROM tblclient, tblcivilité, tblnoms, tblprenoms, tblindicatifsdom, tblindicatifsnat, tblindicatifspro, tbltelephonesdom, tbltelephonesnat, tbltelephonespro, tbldatenaissances, tblemailspro, tblemailsprive WHERE fk_Civilite = tblcivilité.ID AND Civilite = '@Civilite' AND fk_Nom = tblnoms.ID AND Nom = '@nom' AND fk_Prenom = tblprenoms.ID AND Prenom = '@prenom' AND fk_Indicatifdom = tblindicatifsdom.ID AND tblindicatifsdom.Indicatif = '@Indicatifdom' AND fk_Telephonedom = tbltelephonesdom.ID AND tbltelephonesdom.Telephone = '@telephonedom' AND fk_Indicatifnat = tblindicatifsnat.ID AND tblindicatifsnat.Indicatif = '@Indicatifnat' AND fk_Telephonenat = tbltelephonesnat.ID AND tbltelephonesnat.Telephone = '@telephonenat' AND fk_Indicatifpro = tblindicatifspro.ID AND tblindicatifspro.Indicatif = '@Indicatifpro' AND fk_Telephonepro = tbltelephonespro.ID AND tbltelephonespro.Telephone = '@telephonepro' AND fk_Datenaissance = tbldatenaissances.ID AND DateNaissance = '@datenaissance' AND fk_Emailpro = tblemailspro.ID AND tblemailspro.Email = '@emailpro' AND fk_Emailprive = tblemailsprive.ID AND tblemailsprive.Email = '@emailprive''), (SELECT ID FROM tblentreprise WHERE Nom = '@entreprise'))"; MySqlParameter Civilité = new MySqlParameter("@Civilite", MySqlDbType.VarChar); Civilité.Value = Civilite; requete.Parameters.Add(Civilité); MySqlParameter nom = new MySqlParameter("@nom", MySqlDbType.VarChar); nom.Value = Nom; requete.Parameters.Add(nom); MySqlParameter prenom = new MySqlParameter("@prenom", MySqlDbType.VarChar); prenom.Value = Prenom; requete.Parameters.Add(prenom); MySqlParameter indicatifdom = new MySqlParameter("@Indicatifdom", MySqlDbType.VarChar); indicatifdom.Value = IndicatifTelDom; requete.Parameters.Add(indicatifdom); MySqlParameter telephonedom = new MySqlParameter("@telephonedom", MySqlDbType.VarChar); telephonedom.Value = TelDom; requete.Parameters.Add(telephonedom); MySqlParameter indicatifnat = new MySqlParameter("@indicatifnat", MySqlDbType.VarChar); indicatifnat.Value = IndicatiftelNat; requete.Parameters.Add(indicatifnat); MySqlParameter telephonenat = new MySqlParameter("@telephonenat", MySqlDbType.VarChar); telephonenat.Value = TelNat; requete.Parameters.Add(telephonenat); MySqlParameter indicatifpro = new MySqlParameter("@indicatifpro", MySqlDbType.VarChar); indicatifpro.Value = IndicatiftelPro; requete.Parameters.Add(indicatifpro); MySqlParameter telephonepro = new MySqlParameter("@telephonepro", MySqlDbType.VarChar); telephonepro.Value = TelPro; requete.Parameters.Add(telephonepro); MySqlParameter Date_Naissance = new MySqlParameter("@datenaissance", MySqlDbType.VarChar); Date_Naissance.Value = DateNaissance; requete.Parameters.Add(Date_Naissance); MySqlParameter EmailPro = new MySqlParameter("@emailpro", MySqlDbType.VarChar); EmailPro.Value = emailpro; requete.Parameters.Add(EmailPro); MySqlParameter EmailPrive = new MySqlParameter("@emailprive", MySqlDbType.VarChar); EmailPrive.Value = emailprive; requete.Parameters.Add(EmailPrive); MySqlParameter Entreprise = new MySqlParameter("@Entreprisename", MySqlDbType.VarChar); Entreprise.Value = EntrepriseName; requete.Parameters.Add(Entreprise); requete.ExecuteNonQuery(); } catch (MySqlException Ex) { MessageBox.Show("Erreur SQL:\n" + Ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } }juste après être passé sur cette instruction on rentre dans le "Catch".
Code : Sélectionner tout - Visualiser dans une fenêtre à part requete.ExecuteNonQuery();
D'avance je vous remercie pour votre aide et vous salue
Spartanjohn
Partager