C# データベース操作エラー。この接続に関連付けられた開いているDataReaderがすでにあり、これを閉じる必要があります...
MySqlException" タイプの例外が MySql.Data.dll で発生しましたが、ユーザーコードで処理されませんでした。
追加情報です。この接続に関連付けられた開いているDataReaderがすでにあり、先にそれを閉じる必要があります。 このコマンドに関連付けられた開いているDataReaderがすでにあり、最初にそれを閉じる必要があります。
調べてみると、修正されて解決した記事があり、その記事は以下の通りです。
<スパン
<スパン
1. 主な理由は、SqlConnection では DataReader を 1 つだけ開くことができ、別の DataReader を開くときは前のものを先に閉じなければならないからです。
2、おそらくいくつかの友人が求めることができる、私は文のDataReaderを使用していないが、なぜまた、同じエラーを促し、ここでこのDataReaderは、私は十分に深く勉強していないので、指摘するためにあなたを与える、唯一のDataReaderが生成されます呼び出しのメソッドがあることを知って、私はこれも頭痛に遭遇する人の大半だと思う。
データベースの更新文や挿入文を使用する場合、通常はSqlCommandのExecuteNonQuery()メソッドを使用しますが、その前提はパブリックなデータベース接続が定義されていることです(クエリごとに新しい接続が生成されれば、この問題は存在しませんが、その場合はデータベースが比較的高いリソースを占有することになります)。() の場合、空のDataReaderオブジェクトが内部的に生成され、現在のデータベース接続が閉じられると解放されます。そのため、updateメソッドを使用する場合は、usingキーワードを使用することをお勧めします。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();
}
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();
}
関連
-
c# - デシリアライズ・エラー。入力文字列が正しい形式でない
-
C#の遅延関数の使用
-
C#高精度遅延コード実行時間(us/ns)
-
C#の面接質問100選(.net開発者必見)
-
HTTP エラー 500.22 - 内部サーバー エラー-IIS7 Asp.net2.0 ウェブサイトの実行ソリューションに失敗しました。
-
インデックスが配列の範囲外であった。
-
System.InvalidOperationException: ConnectionString プロパティが初期化されていません。
-
エラーです。名前 'Encoding' は現在のコンテキストに存在しない ソリューション
-
C#の構文]をご覧ください。C#のリフレクション(アセンブリ)機構を説明する
-
GDI+でジェネリックエラーが発生しました@System.Drawing.Image.RotateFlip
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
C# string.format でのエラー: 入力文字列が正しい形式でない
-
C#とC++の型対応表まとめ
-
C#でUSBデバイスを操作する方法
-
エラーです。コレクションが変更されました。列挙操作が実行されない可能性があります。
-
Unityがエラーを報告します。コレクションが変更されました。列挙操作が実行されない可能性があります。
-
VS エラー LNK2005:**already defined in **.obj
-
不正なフォーマットでプログラムを読み込もうとした場合の問題を解決します。
-
このリソースにアクセスするには完全な認証が必要です Unauthorized
-
C#のビルドコードで、すべてのコードパスが値を返さないエラーが発生する
-
ASP.NET URL変更によるページ受け渡し