Bonjour,
J'ai un problème lors de requetes sql avec les datareader...
Dans mon code, je dois exécuter une requete sql qui me réenvoie plusieurs enregistrements.
Puis je me sert de chaque enregistrement pour exécuter une autre requete sql...
Le problème est:
Quand il veut exécuter la 2ème requete: il me réenvoie une erreur:
voilà comment mon code se présente en gros:un DataReader associé à cette commande est déjà ouvert
Via google, j'ai vu des idées qui proposent de fermer mon datareader via myReader.Close() ... Mais je ne peux pas fermer le 1er avant d'utiliser le 2ème vu que je suis dans une boucle...
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 SqlConnection myConnection = new SqlConnection("user id=user;" + "password=pass;server=server;" + "Trusted_Connection=yes;" + "database=base; " + "connection timeout=30"); try { myConnection.Open(); try { SqlDataReader myReader1 = null; SqlDataReader myReader = null; SqlCommand myCommand = new SqlCommand("select champ1, champ2 from table", myConnection); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { string query = String.Format("SELECT Ville FROM table2 WHERE (id like '{0}')", myReader["champ1"].ToString()); SqlCommand myCommand1 = new SqlCommand(query, myConnection); myReader1 = myCommand1.ExecuteReader(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } } catch (Exception e) { Console.WriteLine(e.ToString()); }
Quelqu'un aurait-il une idée pour moi? une solution?
Merci d'avance
Partager