問題タブ [dbdatareader]

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.

0 投票する
2 に答える
116 参照

c# - DbDataReaderから読み取り/シリアル化するときにコードの重複を避けますか?

FetchData以下の方法を検討してください。これは、データベースからデータをフェッチするたびにデータベースクエリコードが重複しないように設計されています。

FetchDataそれは機能しますが、このオブジェクトの作成が何らかの形でメソッド内に存在することができれば素晴らしいでしょう。

より良いアプローチはありますか?

おそらくFetchData、X型のリストを直接返すように変更できますか?

0 投票する
0 に答える
119 参照

c# - C# で DataRow/DataReader を使用せずにデータベース行のデータを含むインデクサー オブジェクトを作成する方法

私は現在、それぞれ DataReader と DataRow を含む 2 つのラッパー クラスを持っています。ラッパー クラスは、同じインターフェイス IIndexer を実装します。値を取得するために列にインデックスを付けるだけのメソッドがたくさんあるため、それらが使用されます。

次に例 を示します。同じコードを使用して DataRow または DataReader から読み取るにはどうすればよいですか?

ここで、Insert ステートメントの 3 番目のオプションが必要です。現在、DataRow を取得するための DataTables はなく、Db から読み取る必要もありません。

これは、IndexerWrapper (または DictionaryWrapper) を使用することで実現できます。

データベーステーブルの列情報が既にあるので、列をループして列名をキーとして追加します。

それを行うより良い方法はありますか?初期化する必要があるので、これはあまり便利ではありません。パフォーマンスはどうですか?これは将来、大きな質量に使用される可能性があり、現在は項目ごとに列名が保存されています。DataRows のコレクションと比較して、実際にオーバーヘッドはありますか?

ありがとう - マティ

0 投票する
1 に答える
1246 参照

ado.net - なぜ ExecuteReader() は文字列にトラリング スペースを埋め込むのですか?

2 つのクエリがあります。

使用すると、Q1 の場合と Q2 の場合にSystem.Data.Odbc.OdbcCommandExecuteReader返されるDbDataReader内容が含まれます。'Obama''Obama '

Q2 の場合、文字列の末尾にスペースが埋め込まれているのはなぜですか? また、その解決策は何ですか?

トリミングは醜く、場合によっては間違っています。.Net Framework 3.5 を使用しています。

ここにテストコードがあります

0 投票する
1 に答える
148 参照

c# - DbDataReader を使用してデータベースからデータを読み取り中にエラーが発生しました

Oracle データベースからデータを読み取り、そのデータをリストに追加したいと考えています。しかし、アプリケーションを実行すると、「無効な操作です。接続が閉じられました。エラー。

これは私のコードです:

この問題を解決するのを手伝ってくれませんか。

0 投票する
1 に答える
87 参照

c# - DbDataReader から DataGrid WPF へ

DbDataReader オブジェクトを返すモジュールがあります。これは、Windows.Forms の DataTable/DataGridView で試用され、信頼され、運用環境で使用されているモジュールであるため、変更したくありません。

DataTable を ItemsSource に渡して WPF で同じことを試みましたが、DataTable が実装していない IEnumerator を期待しているため、失敗しました。

DbDataReader がそのインターフェイスを実装していることを思い出し、ItemsSource が内部バッファーにデータを読み込もうとしている可能性があることに気がついたので、DbDataReader を渡してみました。

次に、DataTableExtensions を使用すると、DataTable から列挙子を取得できることがわかりました。しかし、データを反復しているようには見えません!

データを編集する必要はないことに注意してください。DbDataReader から取得したものは問題ありませんでした。必要なのは、このデータのコピーをグリッドで使用できるようにすることだけです...どうすればこれを行うことができますか?それは簡単でなければなりません!

助けてくれてありがとう!

要求に応じて、ここにコードがあります。

これは基本的に、私が Windows フォームで慣れているタイプのものです。

WPFと同等のものは何ですか?