C# データベース操作エラー この接続に関連する開いているデータリーダーがすでにあり、閉じる必要があります。
2022-02-17 05:07:15
データベース保存を行う際、エラーが発生しました: "MySqlException" of type "MySql.Data.MySqlClient" が MySql.Data.dll で発生しましたが、ユーザー コードでは処理されませんでした。
追加情報です。この接続に関連付けられた開いている DataReader がすでにあり、最初にそれを閉じる必要があります。
1. 主な理由は、DataReader が使用するために開かれているとき、SqlConnection は 1 つの DataReader しか開くことができず、別の DataReader を開くときは、前のものを先に閉じなければならないからです。
2、データベースの更新や挿入を行う場合、通常SqlCommandのExecuteNonQuery()メソッドを使用しますが、その前提として、パブリックデータベース接続を定義します(クエリごとに新しい接続を生成すれば、この問題はありませんが、データベースが比較的高いリソースを占有してしまうことになります)。ExecuteNonQuery()の後、内部で空のDataReaderオブジェクトが生成され、現在のデータベース接続が閉じられると、DataReaderは解放されます。したがって、update メソッドを使用する場合は、using キーワードを、そのスコープ内のすべてのオブジェクトを解放するステートメントとして使用することをお勧めします。
コード例です。
MySqlConnection con = null;
if (con == null)
{
con = new MySqlConnection("Server=localhost;User ID=root;Password=root;Database=vs2015test");
}
if (con.State == ConnectionState.Closed)
{
con.Open();
}
using (MySqlCommand cmd = new MySqlCommand(insert, con))
{
cmd.Parameters.Add("@Temperature", MySqlDbType.Double,5).Value = Temp;
cmd.ExecuteNonQuery();
}
if (con ! = null || con.State == ConnectionState.Open)
{
con.Close();
}
関連
-
RuntimeWarning: double_scalars で無効な値が検出されましたが、正常に解決されました。
-
undefineddouble' の前にある期待される一次式を解決します。
-
AttributeError: 'dict' オブジェクトは 'append' という属性を解決していません。
-
プログラム ld の解決策の 1 つが 1 の終了ステータスを返した
-
EF: エンティティオブジェクトは、IEntityChangeTrackerの複数のインスタンスから参照することはできません。
-
Mac mvn : コマンドが見つかりません。
-
Eclipse いくつかのプロジェクトは、ワークスペースにすでに存在するため、インポートできません ソリューション
-
Python3_TypeError: 'list' オブジェクトは呼び出し可能ではありません。
-
django+uwsgi+nginxプロジェクトをubuntu環境に展開し、上流の早期接続切断のエラーを解決することができる。
-
Android SpinnerAdapterの使用
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
要素 popover がクリックされると表示されない 問題が報告される 未定義のプロパティ '$refs' を読み取ることができない
-
clang: error: linker command failed with exit code 1 (use -v to see invocati
-
アクセス違反の読み取り位置 ファイルやオブジェクトを書き込む関数にベクターを渡すとエラーになる
-
Pythonではbreak文とcontinue文はifとしか使えないのでしょうか?
-
解決済みです。GET http://localhost:8080/statics/js/jquery-3.4.1.js net::ERR_ABORTED 404
-
Pytorch が Python int が大きすぎて C の long に変換できないというエラーを報告する
-
Xcode は、実行中に Thread 1: EXC_BAD_ACCESS (code=1) に遭遇しました。
-
Angular.js Unknownプロバイダエラー
-
SQLステートメント共通エラー。"不明な列 'xxx' in 'where 節 "どのように解決するには?
-
json文字列のダブルクォートが&quotになるのですが、どうすれば解決できますか?