ホームページ >データベース >mysql チュートリアル >`cmdInserttblProductFrance.ExecuteNonQuery()` が「この接続に関連付けられた開いている DataReader がすでに存在します。最初に閉じる必要があります」をスローするのはなぜですか?

`cmdInserttblProductFrance.ExecuteNonQuery()` が「この接続に関連付けられた開いている DataReader がすでに存在します。最初に閉じる必要があります」をスローするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 22:22:15936ブラウズ

Why Does `cmdInserttblProductFrance.ExecuteNonQuery()` Throw

例外: 「この接続に関連付けられた開いている DataReader がすでに存在します。最初に閉じる必要があります。」

MySQL を使用するこの .NET プロジェクトではVisual Studio 2010/.Net 4.0 では、データ リーダーの使用中に追加の SQL ステートメントを実行しようとすると例外が発生します。具体的には、cmdInserttblProductFrance.ExecuteNonQuery(); で例外が発生します。

根本的な原因は、データ リーダーと ExecuteNonQuery メソッドの両方で同じ接続が使用されていることにあります。 MSDN によると、これはサポートされていない行為です:

「DataReader が開いている間、接続はその DataReader によって排他的に使用されることに注意してください。別の DataReader の作成を含め、接続に対してコマンドを実行することはできません。元の DataReader は閉じられています。"

2018 年更新: 詳細については、更新された MSDN リンクを参照してください。情報。

以上が`cmdInserttblProductFrance.ExecuteNonQuery()` が「この接続に関連付けられた開いている DataReader がすでに存在します。最初に閉じる必要があります」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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