2

我在 C# 中有一个方法,它应该从 mysql 获取一些数据,然后将这些数据插入另一个表中。
问题是,无论我尝试什么,我都会得到another datareader is open
我尝试使用该using语句,但没有成功,也许我做错了。
怎么做?

public void MethodName(List<string> objects)
{
    foreach(string Object in objects){
        SQLActions.Initialize();
        SQLActions.SQL_Open();
        MySqlDataReader queryData = SQLActions.SQL_Query("SELECT...query...");

        MySqlDataReader objectsData = SQLActions.SQL_Query("Another select....");
        SQLActions.SQL_NonQuery("Insert...");
        while(queryData.Read()){
            SQLActions.SQL_NonQuery("Another Insert...");
        }
        SQLActions.SQL_Close();
    }
}
4

1 回答 1

2

您可能对 DataReader 和 ExecuteNonQuery 使用相同的连接。这不受支持,根据 MSDN: http: //msdn.microsoft.com/en-us/library/haa3afyz (v=vs.80).aspx

检查这个:

C# mySQL 已经有一个打开的 DataReader 关联

来自微软:

使用完 DataReader 对象后,您应该始终调用 Close 方法。

于 2013-05-27T07:18:55.800 回答