問題タブ [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.
c# - ADO.NETフィールドからテーブル名を取得しますか?
user.name、user.post、t.nameを選択してtを指定した場合、tag_name AS t
ADO.NETを使用してフルネームを解決する方法はありますか?
SqlDataReader.GetNameを見つけましたが、それはname
最初の結果としてのみ取得されます。それがuserに属しているのかtag_nameに属しているのか知りたいのですが。教えてもらう方法はありますか?
c# - SqlDataReaderをそのSqlConnectionオブジェクトから「デタッチ」するにはどうすればよいですか?
SqlDataReaderを返すメソッド(「GetDataReader」と呼びましょう)があります。これは、データベースへの永続的な接続を維持するSingletonDataFactoryクラス内にあります。
これに伴う問題は、返された後も、DataReaderがDataFactoryのConnectionオブジェクトに「接続」されていることです。したがって、GetDataReaderを呼び出すコードが、戻ってくるDataReaderでClose()を呼び出すことを確認する必要があります。そうしないと、次のように接続が「ロック」されます。
このコマンドに関連付けられている開いているDataReaderがすでにあり、最初に閉じる必要があります。
GetDataReaderから返送する前に、DataReaderを「デタッチ」するにはどうすればよいですか?それか、クローンを作成してクローンを送り返しますか?呼び出し元のコードを常に明示的に閉じる必要はありません。
ここにはベストプラクティスが必要です。
アップデート:
ご意見ありがとうございます。肝心なのは、DataReaderを使用する習慣を失い、DataTablesに切り替える必要があるということです。それらははるかに管理しやすいです。
また、接続プールに関する注意事項にも感謝します。私はそれについて知っていましたが、2つと2つを組み合わせなかっただけで、車輪の再発明をしていることに気づきました。
c# - SqlDataReaderを使用してArrayListを埋めますか?
指定された接続文字列を受け取り、SQLビューの内容を含むArrayListを返すメソッドを実装しようとしています。
接続文字列とビュー自体の有効性を確認しました。ただし、以下のコードで問題が何であるかはわかりません。デバッグでは、ExecuteReaderメソッドを実行してから、whileループに入ってビュー内のレコードを反復処理しようとすると、何らかの理由でsqlReader.Read()が実行されないため、すぐに停止します。
EligibleClassは、ビューの結果の1行を表す単なるクラスオブジェクトであることに注意してください。
c# - C# SqlDataReader 実行の統計と情報
自動化された DB クエリ実行キューを作成しています。これは基本的に、1 つずつ実行される SQL クエリのキューを作成していることを意味します。
クエリは、次のようなコードを使用して実行されます。
私がやりたいことは、実行についてできるだけ多くの情報を収集することです。かかった時間。影響を受けた行数。
最も重要なのは、失敗した場合、失敗した理由です。
本当に保存したい実行について取得できるあらゆる種類の情報。
c# - SqlDataReader フィールドを対応する c# 型に (効率的に) 変換 (キャスト?) する方法は?
まず、現在の状況を説明させてください。データベースからレコードを読み取り、後で使用するためにそれらをオブジェクトに入れています。今日、データベースの型から C# の型への変換 (キャスト?) に関する質問がありました。
例を見てみましょう:
3 つの呼び出しがコンパイラ エラーthis.field_x = reader["field_x"];
をスローしているため、これは (明らかに) 失敗しています。Cannot implicitly convert type 'object' to 'xxx'. An explicit conversion exists (are you missing a cast?).
これを修正するために、私は現在2つの方法を知っています (field_b
例を使用しましょう) 。this.field_b = (Byte) reader["field_b"];
this.field_b = Convert.ToByte(reader["field_b"]);
オプション番号1の問題はDBNull
、キャストが失敗したときにフィールドが例外をスローすることです(null許容型が as であってもString
) 。それらも列挙型で。Convert.ToString(DBNull)
String.Empty
それで、インターネットとここStackOverflowで数回検索した後、私が思いついたのは次のとおりです。
このようにして、すべてのケースを処理する必要があります。
質問:何か足りないものはありますか? より迅速でクリーンな方法があるので、私は WOMBAT ( Waste Of Money, Brain And Time ) を行っていますか? それはすべて正しいですか?利益?
vb.net - レコードセットの代わりに SQLDataReader を使用する
私はこれが初めてで、この質問がありました。Recordset の代わりに SQLDataReader を使用できますか? SQLDataReader で次の結果を達成したいと考えています。
レコードセットを SQLDataReader に置き換えることはできますか? 可能であれば、コードの変更点を教えてください。
c# - DataReaderが空になると?
私は以下のコードを持っています:
このコードブロックが正常に実行されると、データリーダー(リーダー)は空になりますか?理由は何ですか?後でこのリーダーで作業する必要があります。解決策は何ですか?
sql - SQLでデータをコピーしながら列を追加する
SqlBulkCopyを使用して、あるテーブルから別のテーブルにいくつかのレコードを一括挿入しています。クエリはSqlDataReaderを使用してデータを取得しています。テーブル間で重要な(マッピングで処理される列の順序以外の)1つの違いは、宛先テーブルに現在の日付を追加する必要がある日付列があることです。この日付はソーステーブルにありません。これを差し引いて正常に動作している現在のプロセスにこれを追加するにはどうすればよいですか?
現在動作しているコードは次のようになります。
DBはsql2008ENTです。
asp.net - SQLDataReader: null 値の処理
私が扱っているいくつかのテーブルには null 値があり、エラーがスローされています。これまでのところ、ヌルに対処するためにいくつかの解決策を試しましたが、成功していません。
これまでの私の取り組みのコード サンプルを次に示します。
と;
と;
と;
そしてSQL経由。
最終結果は IndexOutOfRangeException です。
これがSQLです。
ps、クエリを実行しましたが、問題なく動作しています(つまり、すべての列が存在します)