ホームページ >データベース >mysql チュートリアル >`ExecuteNonQuery()` が「すでに開いている DataReader があります...」をスローするのはなぜですか?
接続実行中に DataReader が開かれました
Visual Studio 2010/.Net 4.0 および MySQL プロジェクトの使用中に、開発者が例外「」を検出しました。この接続に関連付けられた開いている DataReader がすでに存在するため、閉じる必要があります"
問題のコードは、データ リーダーが開いている間に別の SQL ステートメントを実行しようとします。具体的には、cmdInserttblProductFrance.ExecuteNonQuery(); 行で例外がスローされます。
この問題は、接続がデータ リーダーと ExecuteNonQuery コマンドの両方に使用されているために発生します。 MSDN によると、そのような使用法はサポートされていません:
"DataReader が開いている間、接続はその DataReader によって排他的に使用されることに注意してください。元の DataReader が閉じられています。"
これを解決するには、追加の SQL ステートメントを実行する前にデータ リーダーを閉じてください。
以上が`ExecuteNonQuery()` が「すでに開いている DataReader があります...」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。