問題タブ [mysqldatareader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - SubSonic: MySqlDataReader が接続を閉じる
SubSonic 2.1 を使用していますが、Transaction の実行中に問題が発生しました。
SharedDbConnectionScope と TransactionScope。問題は、obj.Save() メソッドで「接続は有効で開いている必要があります」という例外が発生することです。
問題を次の行まで追跡しました。
この User クラスのコンストラクターで、メソッド「LoadParam」が呼び出され、最終的に
rdr.Close() が暗黙的に接続を閉じているように見えますが、AutomaticConnection を使用する場合は問題ありません。しかし、トランザクション中に接続を閉じることは通常良い考えではありません:-)
私の質問は、これが設計によるものなのか、それとも MySqlDataReader のエラーなのかということです。
mysql - .NET MySqlは「使用」してデータリーダーを閉じますか?
私は、try / catch/finallyブロックを使用して開いているデータリーダーを閉じていました。
しかし、「Using」VBキーワードを使用する方がよりクリーン(そしていくらか高速)である必要があると思います。
IDisposeインターフェース(使用に必要)はDataReaderでCloseを実行しますか?
sql - 列挙子の SQL Select の最適化
このクエリを列挙子用に最適化するにはどうすればよいですか。
SELECT * FROM Customers
セットの顧客を返す SqlReader は、列挙子方式でオンデマンドで読み取られます。foreach ループでゆっくりと読み取り/消費できる巨大なデータセットを返すことができますが、同じテーブルに対する他のすべてのクエリでは多くの競合が発生します。これをどのように最適化/回避できますか? カーソルまたは一時テーブルへの選択?
これは、多くの競合を引き起こすコード例です (私はそれをプロファイリングしましたが、数値は確かに悪いように見えます):
PS MySQL でこれを最適化する必要もあります。
vb.net - NullReferenceException を避ける
私は .NET プログラミングにかなり慣れていません。データベース テーブルに設定があるかどうかを確認しようとしています。ない場合は、デフォルト設定をいくつか作成します。問題は、設定がない場合、データリーダーで 2 つの呼び出しを行う必要があり、問題が発生し続けることです。
私はもともと1つのデータリーダーしか使用していませんでしたが、問題を解決するために2つ作成しましたが、うまくいきませんでした.
次に、データリーダーを閉じようとしましたが、null 参照が返されたためエラーが発生しました。
閉じようとすると問題が発生します。閉じないと、次のエラーで、この接続には閉じる必要がある開いているデータリーダーが既に存在するというエラーが表示されます。コードをリファクタリングしてこれを機能させる方法を誰か教えてもらえますか (できれば 1 つのデータリーダーで)。
また、reader.close() を try catch の別のセットに入れてみましたが、これによりエラーをキャッチできますが、まだデータリーダーを閉じないため、途方に暮れています。
c# - 列の名前で MySqlDataReader の NULL をチェックする方法は?
NULL
openの値を確認するにはどうすればよいMySqlDataReader
ですか?
以下は機能しません。それは常にヒットしていelse
ます:
rdr.IsDbNull(int i)
名前ではなく、列番号のみを受け入れます。
mysql - エラー: select コマンドがユーザーに拒否されました ''@''テーブル用''
私のウェブサイトでは、MySQL データベースを使用しています。私はすべてのデータベース関連の操作を行う Web サービスを使用しています。
そのWebサービスのメソッドの1つで、次のエラーが発生します。
テーブル '<table-name>' のユーザー '<userid>'@'<ip-address>' に対する select コマンドが拒否されました
何が間違っている可能性がありますか?
以下は、そのエラーが発生するコードです。デバッグを試みたところ、次の行で失敗することがわかりました
MySqlDataReader result1 = command1.ExecuteReader();
これが私のコードです:
c# - C# で MySQLConnection を使用すると正しく閉じない
最終的解決:
接続が接続プールに追加されました。それで私はそれを閉じましたが、物理的に開いたままでした。ConnectionString パラメータ "Pooling=false" または静的メソッド MySqlConnection.ClearPool(connection) および MySqlConnection.ClearAllPools を使用すると、問題を回避できます。問題は、アプリケーションを閉じたときに接続がまだ生きていたことに注意してください。閉めたのに。したがって、接続プールをまったく使用しないか、接続を閉じる前に特定のプールをクリアして問題を解決します。私の場合、何が最善の解決策であるかを時間をかけて考えます。
答えてくれてありがとう!C# の概念をよりよく理解するのに役立ち、有益な情報から多くのことを学びました。:)
===
元の問題:
しばらく検索しましたが、問題の解決策が見つかりませんでした。C# は初めてで、MySql 接続を簡単にするクラスを作成しようとしています。私の問題は、接続を開いて閉じた後です。データベースでまだ開いているため、中止されます。
もちろん、「using」ステートメントを使用していますが、接続はまだ開いており、プログラムを終了すると中断されます。
私のコードは次のようになります。
クラス Database manager は接続を開き、破棄されると閉じます。
そのため、デバッガーで確認したところ、Dispose() メソッドが呼び出され、正しく実行されました。私は何が欠けていますか?私が間違ったことや誤解したことはありますか?
どんな助けでも大歓迎です!
こんにちは、サイモン
PS: 念のため、DataReader() メソッド (更新版):
わかりました、yield リターンを使用しようとしました:
そして、DataReader メソッドを変更しました。
データを取得できるように機能しますが、まだ同じ問題があります。接続が適切に閉じられていません。:(
asp.net - MySqlDataReaderをリセットして再度ループできますか?
MySqlDataReaderオブジェクトがあり、このクエリの結果は次のとおりです。
SELECT warehouse, leasing, transportation, maintenance, manpower FROM retail WHERE zone = 'Central' GROUP BY warehouse
次に、DataReaderを1回ループします。
そして今、私はそれをもう一度ループしたい... !!
DataReaderは「転送専用」オブジェクトにすぎないことを知っています。しかし、ここで他の解決策はありますか?
MySqlDataReader以外のデータを保持する効率的な方法はありますか?
c# - MySQLDataReaderがC#でNull値の問題を取得しています
私は現在、MySQLデータをエクスポートするC#プロジェクトに取り組んでいます。エクスポートはサーバー内の任意のデータベースに対するものであるため、テーブル内のフィールドとデータ型はわかりません。また、テーブル内のフィールドでnull値が許可されているかどうかもわかりません。
テスト中に、エクスポートが正常に機能していることがわかりましたが、mysqlデータリーダーがnullの行に到達したときにフィールドがnullを許可すると、エラーSqlNullValueExceptionが表示され、データはnullになります。
試しif (reader.getString(field) == null) {}
ましたが、まだエラーが表示されています。
データベース内のNull値に対処するにはどうすればよいですか。
あなたが提供できるどんな助けにも感謝します。
c# - MySqlDataReader: DataTable.Fill(reader) が ConstraintException をスローする
私は2つのテーブルを持っていてorders
、orderdetails
テーブル orders (PK = id、orderno の UNIQUE インデックス)
テーブル orderdetails (PK = id)
今、私はデータを照会したいと思います:
INNER JOIN orderdetails od ON o.orderno = od.order
戻り値:
ただし、次のコードを使用して結果を DataTable にロードすると失敗します。
問題はそれです
UniqueConstraints
orderno 列の です。おそらく理由
ordernoのIsUnique=true
エントリがあります (ベース テーブルでは当てはまりますが、結合クエリでは当てはまりません)。
さらに悪いことに、それも役に立ちません:
これを修正する方法はありますか?
スタックトレース: