如果可能的话,我必须找到一种用C#做到这一点的方法。
我必须循环访问我的文件夹列表(mysql表),并且我必须为每个文件夹执行另一个查询,但是当我这样做时,它说:“已经有一个与该Connection相关联的打开的DataReader”,并且我位于mysqlreader中已经循环。
请注意,我只是为了向您展示代码而简化了,事实是我必须在mysqlreader循环内进行查询,并且由于它们位于同一连接上,因此看起来不可能吗?
MySqlConnection cnx = new MySqlConnection(connexionString);
cnx.Open();
MySqlCommand command= new MySqlCommand("SELECT * FROM folder WHERE folder_id = " + id, cnx);
MySqlDataReader reader= commande.ExecuteReader();
while (reader.Read())
{
this.folderList[this.folderList.Length] =
new CFolder(reader.GetInt32"folder_id"), cnx);
}
reader.Close();
cnx.Close();
最佳答案
好吧,您可以首先从本地获取所有数据,例如数据表或其他集合,然后遍历整个循环,从而使您在该循环内进行第二次sql调用。
但是,在循环内进行sql调用通常不是一个好方法。无论如何,您可以在第一次通话中获得所有数据吗?