Bonjour à tous,
J'ai un problème pour appliquer un Time-out de connexion. Je me connecte trois fois sur un serveur et j'aimerais que si le nom de serveur est erroné le pc ne "mouline" pas trop sachant que ma base sera en locale donc c'est censé prendre moins de quelques secondes si le nom de serveur est correcte. Quand le nom de serveur est mauvais, la 1ère ouverture de connexion prend 30 secondes environ systématiquement et après le time-out n'est pas vraiment non plus respecté bien que dans la console s'affiche la bonne valeur de Timeout quand je tape ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part oConnection.ConnectionTimeout
ci-dessous la code de ma connexion :
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 public string RecupValeurUniqueOK(string NomServeur, string NomBase, bool Auth, string user, string password, string querySQL, string Timeout = "5") { string connexionString; string valeurUnique; if (Auth == true) { connexionString = "Data Source=" + NomServeur + ";Integrated Security=True;Initial Catalog=" + NomBase + ";Connection Timeout=" + Timeout; } else { connexionString = "Data Source=" + NomServeur + ";Initial Catalog=" + NomBase + ";User ID=" + user + ";Password=" + password + ";Connection Timeout=" + Timeout; } try { using (SqlConnection oConnection = new SqlConnection(connexionString)) { oConnection.Open(); using (SqlCommand oCommand = new SqlCommand(querySQL, oConnection)) { oCommand.CommandTimeout = 5; valeurUnique = oCommand.ExecuteScalar().ToString(); oConnection.Close(); return valeurUnique; } } } catch { Console.WriteLine("Erreur de connexion"); return "0"; } }
Et là le code que je lance lié à la méthode plus haut.Qu'est ce que j'aurais oublié dans mon code ? je sèche un peu là
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 private void RetrouverNumeroPieceTest() { ConnexionSQL beginSQL = new ConnexionSQL(); int compteur = 0; int m1 = 0; int m2 = 0; int m3 = 0; string result1 = "0"; string[] Arr2 = new string[] { "fgdfgdfsg", "NomBase", "true", "User", "Password", "False", "False", "8" }; string query = FileStore.Resource1.UNION_ACH_VTE_STK_NUMPIECE; query = query.Replace("NumeroDoc", txtBoxEan.Text); Console.WriteLine("Valeur du Timeout : " + Arr2[7]); result1 = beginSQL.RecupValeurUniqueOK(Arr2[0], Arr2[1], Convert.ToBoolean(Arr2[2]), Arr2[3], Arr2[4], "SELECT COUNT(*) from (" + query + ") as NB", Arr2[7]); compteur += Convert.ToInt16(result1); m1 += Convert.ToInt16(result1); result1 = beginSQL.RecupValeurUniqueOK(Arr2[0], Arr2[1], Convert.ToBoolean(Arr2[2]), Arr2[3], Arr2[4], "SELECT COUNT(*) from (" + query + ") as NB", Arr2[7]); compteur += Convert.ToInt16(result1); m2 += Convert.ToInt16(result1); result1 = beginSQL.RecupValeurUniqueOK(Arr2[0], Arr2[1], Convert.ToBoolean(Arr2[2]), Arr2[3], Arr2[4], "SELECT COUNT(*) from (" + query + ") as NB", Arr2[7]); ; compteur += Convert.ToInt16(result1); m3 += Convert.ToInt16(result1); MessageBox.Show("Compte rendu : Chez m1 :" + m1 + ". Chez m2 :" + m2 + ". Chez m3: " + m3 + ". Au Total: " + compteur); }![]()
Partager