Bonjour,

Je vous explique vite fais le problème :

A partir d'une table donnée, je souhaite récuperer tout les attributs d'une colonne, afin de me permettre de faire un Insert avec les valeurs récupérées, dans une autre table.

voici mon 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
 
 
 
string MyConString = "SERVER=localhost;" + "DATABASE=nom.de.base;" + "UID=root;" + "PASSWORD=;";
 
Private void btt_test_click (object sender, EventArgs e)
{
 
     MySqlConnection mySqlCnx = new MySqlConnection (MyConString);
     MySqlCommand mySqlcommand = new MySqlCommand ();
     MySqlDataReader mysqldr;
 
     try 
     {
            mySqlCnx.Open();
            mySqlCommand.Connection = mySqlCnx;
            mySqlCommand.CommandType = commandType.Text;
            mySqlCommand.CommandText = "SELECT (id_poste) AS Poste FROM postesource";
            mySqldr = mySqlcommand.ExecuteReader();
 
            while (mySqldr.Read())
 
               {
                   MySqlCommand command = mySqlCnx.CreateCommand();
                   command.CommandText = "INSERT INTO concerner (id_concerner, id_ordre, id_poste) VALUES ('1', '" + mySqldr["Poste"].ToString() + "','2')";
                   command1.ExecuteNonQuery();
 
                }
 
   catch (MySqlException Ex) 
   {
          MessageBox.Show(Ex.ToString());
   }
 
}
Lors de l'exécution de ce code le message d'erreur qui m'ai renvoyé est le suivant :


MySql.Data.MySQLClient.MySqlException : There is already an open DATAReader associated with this Connection which must be closed first.
Mais lorsque je ferme la connexion associé au datareader, il n'y a que un seul passage dans ma boucle while, alors que j'en aurais une dizaine a faire.

Quelqu'un pourrait-il m'aider svp?