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 に答える