Do nothing.....until.....?

Signaler
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010
-
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
-
Je suis  en train de faire un programme qui requiert une connexion èa une base de données SQL Server en Wi-Fi et j'ai un problème.  Lorsque je lance ma connexion, le temps que mon programme se connecte il a déja passé a la ligne suivante, il essaie de faire une requête et il apparait une erreur de "Connection Closed" car il n'a pas encore reussi a se connecter.  Je vais vous montrer mon code a peu pres pour vous donner une idee :

Connect()
....
Requete()  <----- plante car il n'a pas encore etablis sa connexion avant d'effectuer la requete

Ce que j'avais penser etait quelque chose comme ca :

Connect()
Do
 
.....attend la connexion....

loop until SQLConn.connectionstate.open

Requete()

Je ne sais pas trop s'il y a quelqu'un qui pourrait m'aider avec mon probleme....mais ce serait bien le fun.

4 réponses

Messages postés
44
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
23 février 2008

Regarde du côté de la fonction connect si tu peux lui fixer une expiration de délai pour ado.net
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

tu peux faire :
Do
 //10 secondes
 system.threading.thread.sleep(10)
loop until SQLConn.connectionstate.open

mais c'est un peut bourrin

ou alors tu peux mettre un timeout plus long sur la chaine de connexion...

ShareVB
Messages postés
24
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
31 mai 2010

Je vais vous donner mon code plus en detail pour que vous voyez un peu a quoi ca ressemble.

Public Sub ConnectBD() as boolean
try
    sqlConn = new sqlConnection    sqlConn.ConnectionString "Persist Security False; Trusted_Connection = sspi ; Server = NOMSERVER, #Port; initial catalog = NOMBD ; user id=; password=;"
    sqlConn.open()
catch ex as sqlexception
    msgBox("erreur")
end try
end sub

Public sub Requete(Byval req as string)
    sqlCmd = new SqlCommand
    sqlCmd = sqlConn.CreateCommand
    sqlCmd.CommandText = req
 try
    sqlCmd.ExecuteNonQuery() <-----Erreur L'etat de la connection est "Closed"
catch ex as sqlexception
    msgBox("Erreur")
end try

Et puis j'ai regarde du cote des attributs de ma fonction connect...je n'ai pas vu de delais de connection.  J'aurais du mettre le code plus complet lors de mon message, peut-etre cela va vous donner une meilleure idee.
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
20
salut,

à priori, dans ta chaine de connexion, tu peux ajouter : "Connect Timeout=nb_secondes"...ca doit surement marcher...

ShareVB