如果可能的话,我必须找到一种用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调用通常不是一个好方法。无论如何,您可以在第一次通话中获得所有数据吗?

08-25 18:47