Bonjour,
Je développe actuellement une appli Windows Form en C# avec Visual Studio 2012, en utilisant l'architecture 3 tiers et je rencontre des problèmes lors de la connexion à la base de données.
J'aimerais que l'utilisateur puisse se connecter à une base de données en indiquant lui même dans des textbox le nom de la base, son adresse ip, l'utilisateur et le mot de passe; ces valeurs étant récupérées dans des variables que j'utilise dans la chaîne de connexion de la couche d'accès aux données. Seulement, après avoir rempli les textbox, une erreur disant "Unable to connect to any of the specified Mysql Hosts", m'est renvoyée ...
Dans la couche d'accès aux données j'ai ce code :
Et dans la couche utilisateur, donc le code du formulaire, j'ai ceci :
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 public class CAD { private MySqlCommand oCMD; private MySqlDataAdapter oDA; private DataSet oDS; private string cnxAutre; private MySqlConnection oCNXautre; public string nomBdd; public string ipBdd; public string userIdBdd; public string pswBdd; public CAD(string nomBdd, string ipBdd, string userIdBdd, string pswBdd) { this.nomBdd = nomBdd; this.ipBdd = ipBdd; this.userIdBdd = userIdBdd; this.pswBdd = pswBdd; } // paramètrage connexion à la bdd public CAD() { this.cnxAutre = @"Database='" + nomBdd + "';server='" + ipBdd + "';User Id='" + userIdBdd + "';Password='" + pswBdd + "';Command Timeout=28800"; this.oCNXautre = new MySqlConnection(this.cnxAutre); this.oCMD = new MySqlCommand(); this.oDA = new MySqlDataAdapter(); } //méthode permettant la lecture des données dans la bdd public System.Data.DataSet m_GetRows(string rq_sql, string rows_name) { try { this.oDS = new DataSet(); this.oCMD.Connection = this.oCNXautre; this.oCMD.CommandText = rq_sql; this.oDA.SelectCommand = this.oCMD; this.oDA.Fill(this.oDS, rows_name); } catch (Exception e) { System.Windows.Forms.MessageBox.Show(e.Message); } return this.oDS; } public string NomBdd { get { return nomBdd; } set { nomBdd = value; } } public string IpBdd { get { return ipBdd; } set { ipBdd = value; } } public string UserIdBdd { get { return userIdBdd; } set { userIdBdd = value; } } public string PswBdd { get { return pswBdd; } set { pswBdd = value; } } } }
Je suppose que le problème vient du fait que les valeurs dans les textbox ne sont pas récupérées correctement dans la chaîne de connexion mais ayant passé plusieurs heures sur ce problème je n'arrive plus à prendre le recul nécessaire, je ne vois pas quelle peut être la solution. Peut être un regard neuf pourrait-il y voir plus clair !
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 public partial class Form1 : Form { private DataSet res; private Pcs_Selectionner oPcsSelectionner; private string dateDebut; private string dateFin; private System.Windows.Forms.SaveFileDialog saveFileDialog2; public CAD cad1; public Form1(string dateDebut, string dateFin, DataSet res, CAD cad1) { InitializeComponent(); res = new DataSet(); this.res = res; oPcsSelectionner = new Pcs_Selectionner(); this.dateDebut = dateDebut; this.dateFin = dateFin; cad1 = new CAD(textBox_bddNom.Text, textBox_bddIP.Text, textBox_bddUserId.Text, textBox_bddPsw.Text); } public Form1() { InitializeComponent(); } private void btn_Ok_Click(object sender, EventArgs e) { if (textBox_bddNom.Text == "" || textBox_bddIP.Text == "" || textBox_bddUserId.Text == "" || textBox_bddPsw.Text == null) { MessageBox.Show("Veuillez compléter tout les champs", "Attention"); } else { CAD cad1 = new CAD(); cad1.nomBdd = textBox_bddNom.Text; cad1.ipBdd = textBox_bddIP.Text; cad1.userIdBdd = textBox_bddUserId.Text; cad1.pswBdd = textBox_bddPsw.Text; } }
Merci d'avance pour toute l'aide que vous pourrez m'apporter !
Partager