如果可能的话,我必须找到一种在 C# 中执行此操作的方法...
我必须在我的文件夹列表(mysql 表)上循环,并且对于我实例化的每个文件夹,我必须执行另一个查询,但是当我这样做时,它会说:“已经有一个与此连接关联的打开的 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 调用通常不是一个好的方法。无论如何,您是否可以在第一次调用中获取所有数据?
关于C# mysqlreader 出现相同连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016445/