C# mysqlreader 出现相同连接错误

标签 c# mysql

如果可能的话,我必须找到一种在 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/

相关文章:

c# - C# 中的 >> Java 运算符相当于什么

mysql - 如果引用表中的值为空或零,则取消插入

python - SQLAlchemy 和 MySQL 的多重链表

mysql - 设置Mysql参数group_concat_max_len

mysql - 错误 : function crashed. 详细信息:连接 ECONNREFUSED/cloudsql/<实例连接名称>>

mysql - 使用触发器获取mysql中插入行的值

c# - 如何在 ASP.NET Core Identity 中使用角色 GUID 而不是名称?

c# - C# 的 Simple-ITK 安装教程

c# - Entity Framework 6 - DbFunctions 的扩展方法

c# - 在azure函数中使用MongoDB.Driver