ホームページ >データベース >mysql チュートリアル >`ExecuteNonQuery()` が「すでに開いている DataReader があります...」をスローするのはなぜですか?

`ExecuteNonQuery()` が「すでに開いている DataReader があります...」をスローするのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 06:06:11296ブラウズ

Why Does `ExecuteNonQuery()` Throw

接続実行中に DataReader が開かれました

Visual Studio 2010/.Net 4.0 および MySQL プロジェクトの使用中に、開発者が例外「」を検出しました。この接続に関連付けられた開いている DataReader がすでに存在するため、閉じる必要があります"

問題のコードは、データ リーダーが開いている間に別の SQL ステートメントを実行しようとします。具体的には、cmdInserttblProductFrance.ExecuteNonQuery(); 行で例外がスローされます。

この問題は、接続がデータ リーダーと ExecuteNonQuery コマンドの両方に使用されているために発生します。 MSDN によると、そのような使用法はサポートされていません:

"DataReader が開いている間、接続はその DataReader によって排他的に使用されることに注意してください。元の DataReader が閉じられています。"

これを解決するには、追加の SQL ステートメントを実行する前にデータ リーダーを閉じてください。

以上が`ExecuteNonQuery()` が「すでに開いている DataReader があります...」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。