Un DataReader associé à cette Command est déjà ouvert
Bonjour,
Dans mon appli, je boucle sur le résultat d'une requête, et en fonction de ces résultats je supprime d'autres lignes dans une autre table (voir le code ci dessous).
Le problème est que j'ai ce message d'erreur à la ligne du cmd.Delete() :
Citation:
System.InvalidOperationException
Un DataReader associé à cette Command est déjà ouvert. Il doit d'abord être fermé.
Je pense que c'est un problème de Using ? Mais je ne vois pas trop comment faire...
Est-ce que quelqu'un a une idée svp ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| using (SqlConnection s = new SqlConnection(connectionString))
{
s.Open();
using (SqlCommand cmdSelect = new SqlCommand("SELECT nom_table FROM dbsync", s))
{
cmdSelect.CommandType = CommandType.Text;
using (SqlDataReader sqlDataReader = cmdSelect.ExecuteReader())
{
while (sqlDataReader.Read())
{
string nom_table = sqlDataReader.GetString(0);
this.Synchro(nom_table);
using (SqlCommand cmdDelete = new SqlCommand($"DELETE FROM dbsync WHERE nom_table = '{nom_table}'", s))
{
cmdDelete.CommandType = CommandType.Text;
cmdDelete.ExecuteNonQuery();
}
}
}
}
} |