Utilisation de multiples SqlDataReader
Bonjour,
J'ai un problème avec l'utilisation deux SQLDataReader, car au deuxième ExecuteReader(), j'ai cette erreur :
«System.InvalidOperationException: Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé.».
J'ai pu voir que c'est parce qu'on ne peut utiliser deux reader en même temps, mais dans ma situation, je ne peux fermer mon reader principal.
Voici mon code :
Code:
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
| private void CreateTableau()
{
TableCell CelluleDonneeProduit;
TableRow RowDonneeProduit;
myConn.Open();
SqlCommand cmd = myConn.CreateCommand();
cmd.CommandText = "SELECT DISTINCT aa, bb, cc, dd, ee, ff FROM tabcd";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int j = 0; j <= 5; j++)
{
CelluleDonneeProduit = new TableCell();
else if (j == 2)
{
TexteInfoBulle = reader.GetString(5) + "<br />" +
AfficheCommentaire(reader.GetString(1));
...
}
RowDonneeProduit.Cells.Add(CelluleDonneeProduit);
Row.CssClass = CssClass;
tableau.Rows.Add(Row);
}
myConn.Close();
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| private string AfficheCommentaire(string CodeItem)
{
string Texte = "";
SqlCommand cmd = myConn.CreateCommand();
SqlDataReader reader;
cmd.CommandText = "SELECT DISTINCT Comm FROM tcomm WHERE GG=CodeItem";
reader = cmd.ExecuteReader();
while (reader.Read())
{
Texte += "<br />" + reader.GetString(0);
}
return Texte;
} |
AfficheCommentaire retourne 0 ou plusieurs commentaires que l'on concatène pour ensuite envoyer le résultat dans le tableau.
Je voudrais savoir s'il y a un moyen d'exécuter ces deux reader sans fermer la première, car il doit continuer à peupler le tableau.