問題タブ [sqldatareader]
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.
.net - SqlDataReader のパフォーマンスの低下
MSSMSで約2秒実行するクエリを実行しました(25Kの行を返します)
.NET (sqlReader) で使用される同じクエリを数分実行します。
また、リーダーのみを実行しようとしました
( while ループ内のすべてのコードにコメントして、 Reader.Read() を残すだけです) - それでも同じです!
どうしたの?
私は DBA ではなく、Profiler を使用する特権もありません。DBA に尋ねて、すべてを知らせます。
その間、SPに「 WITH RECOMPILE」パラメータを追加した後、本質的なパフォーマンスの向上に気づきました。
だから、私の観点からは、それは実行計画の場合のように思えます...どう思いますか?
[編集] また、私がチェックしたのは、QA および .NET から以下のクエリを実行していたことです。
私の理解では、両方の環境で同じ値を返す必要があります。(そうでない場合は ex.plans が使用されます) 私は正しいですか?
[EDIT2] ( http://www.sqldev.net/misc/fn_setopts.htmから) QA でARITHABOIRT =ON を読みました (.NET ではオフです)
.NET 接続ごとに ARITHABOIRT=ON を強制する方法を知っている人はいますか?
sql-server - データベースで複数の計算を行う最良の方法 (.NET 2.0 VB)
大量の SQL ステートメントを作成するか、データを asp .NET にキャッシュしてそこからデータを操作する方がよいでしょうか?
乾杯
c# - SqlDataReader から列名を取得できますか?
データベースに接続した後、返されたすべての列の名前を取得できますSqlDataReader
か?
stored-procedures - ストアド プロシージャに複数の select ステートメントがある場合の SqlDataReader の使用方法
Microsoft SQL Server 2005 のストアド プロシージャに 3 つの select ステートメントをコーディングしました。両方の select ステートメントが複数のレコードを返し、select ステートメントのテーブル リストが異なります。1 つはマスター テーブルからレコードを選択し、もう 1 つは子テーブルからレコードを選択します。C# コードでは、これらすべてのレコードを取得し、すべてのデータを 1 つのオブジェクトに配置したいと考えています。SqlDataReader を使用しています。それは可能ですか、それとも何か他のことをする必要がありますか。
c# - datareader が null または空かどうかを確認する方法
SQL Server データベースから lsit レコードを返す datareader があります。データベースに「Additional」というフィールドがあります。このフィールドは、50% の時間で空または null になります。
このフィールドがnullかどうかをチェックするコードを書こうとしています。この背後にあるロジックは次のとおりです。「追加」フィールドにテキストが含まれている場合は情報を表示し、そうでない場合はフィールドを非表示にします。
私が試してみました:
上記のコードでは、次のエラーが表示されます。
例外の詳細: System.IndexOutOfRangeException: 追加
どんな助けでも大歓迎です...
関連項目:
sql - ExecuteReader には、オープンで使用可能な接続が必要です。接続の現在の状態は閉じています
わかりました、今週初めにこのエラーについて尋ねたところ、非常に役立つ回答がいくつかありました。提案に従って始めてから、間違いなく状況は大幅に改善されました.
ただし、現在、データベースにアクセスするための「正しい」ベストプラクティスの方法を使用していますが、一部の関数でこのエラーが発生し、そのブロックでエラーを消すことができません。これが私のコードです:
今、私が何をしても、ExecuteReader にはオープンで利用可能な接続が必要です。接続の現在の状態は閉じています。この接続で。このクラス内で同じものと呼ばれるオブジェクトを持つ関数 (cmd、dr など) がありますが、Using はそれ自体の後にクローズアップしますか?
提案を歓迎します:)
c# - データリーダーから列を削除
一般的な SQLDataReader を受け取り、それを csv ファイルに変換する小さな C# 関数があります。ただし、渡される datareader から 1 列を無視する必要があります。
SQLDataReader から 1 列を削除するにはどうすればよいですか?
この列は、主に順序付けのためにクエリで必要ですが、同じページロードの別の領域で使用されますが、生成する csv ファイルに表示したくありません。
編集:私はやや誤解を招くと思います.削除したい列は他のケースで使用されています,これだけではありません.クエリから削除するだけで機能しますが、代わりにクエリを2回実行する必要があります.一度だけで、より大きなクエリです。
c# - SqlDataReader - 現在の行を辞書に変換する方法
SqlDataReader の現在の行のすべての列を辞書に変換する簡単な方法はありますか?
ありがとう