Bonjour,

J'ai besoin d'effectuer plusieurs boucles imbriquées mais celle-ci ne fonctionnent pas. Je crois avoir cernée le problème mais je ne sais pas le résoudre. SqlDataReader on ne peut être utiliser que si le précèdent est fermé. Mais je ne sais pas comment lire les requête autrement.

Le code :
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
 
private void (string requete1, string requete1_bis, string requete_Insertion_, string code_athlete, string mdp, string id_athlete, string bdd_idathlete, string server_idathlete, string utilisateur_idathlete, string pwd_idathlete, string id, string mp, string requete_verif)
        {
            //recupération du ID_athlete de la table athlete :
            // Chaine de connexion
            try
            {
 
                string connectString = "database='" + bdd_idathlete + "'; server='" + server_idathlete + "';User ID='" + utilisateur_idathlete + "'; pwd='" +pwd_idathlete + "'";
                // Objet connection
                SqlConnection connection = new SqlConnection(connectString);
 
                connection.Open();// Ouverture
                //TRI IMPRIMANTE
 
 
                requete1 = "SELECT * FROM imprimante WHERE code_athlete is not null AND mdp_athlete is not null";
        // Création d'un objet SqlDataAdapter
                SqlCommand Command = new SqlCommand(requete1, connection);
                SqlDataReader dex = Command.ExecuteReader();
 
                while (dex.Read())
                {
                    code_athlete = dex["code_athlete"].ToString();
                    mdp = dex["mdp_athlete"].ToString();
 
                    requete_verif = "SELECT * FROM  ";
                    SqlCommand verif_ = new SqlCommand(requete_verif, connection);
                    SqlDataReader verif_dex = verif_.ExecuteReader();
 
                    while (verif_dex.Read())
                    {
                        id = verif_dex["LOGIN_"].ToString();
                        mp = verif_dex["MDP_"].ToString();
                        Console.WriteLine(id + "--" + mp);
                        if ((id != code_athlete) && (mp != mdp))
                        {
 
                            requete1_bis = "SELECT id_athlete FROM athlete WHERE code_athlete ='" + code_athlete + "'";
                            SqlCommand insert_ = new SqlCommand(requete1_bis, connection);
                            //// Objet DataReader
                            Console.WriteLine(requete1_bis);
                            SqlDataReader dex_bis = insert_.ExecuteReader();
                            while (dex_bis.Read())
                            {
                                Console.WriteLine(requete1_bis);
 
                                id_athlete = dex_bis["id_athlete"].ToString();
 
                                requete_Insertion_ = "INSERT INTO  VALUES('" + id_athlete.Replace("'", "''") + "','" + code_athlete.Replace("'", "''") + "','" + mdp.Replace("'", "''") + "') ";
                                Console.WriteLine(requete_Insertion_);
                                SqlCommand insert = new SqlCommand(requete_Insertion_, connection);
                                insert.ExecuteNonQuery();
                                insert.Dispose();
                            }
                            dex_bis.Close();
                        }
                    } verif_dex.Close();
                 }
                dex.Close();
 
                connection.Close();
            }
PS: J'ai testé les requêtes elles fonctionnent