問題タブ [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.
c# - DbDataReaderから読み取り/シリアル化するときにコードの重複を避けますか?
FetchData
以下の方法を検討してください。これは、データベースからデータをフェッチするたびにデータベースクエリコードが重複しないように設計されています。
FetchData
それは機能しますが、このオブジェクトの作成が何らかの形でメソッド内に存在することができれば素晴らしいでしょう。
より良いアプローチはありますか?
おそらくFetchData
、X型のリストを直接返すように変更できますか?
c# - C# で DataRow/DataReader を使用せずにデータベース行のデータを含むインデクサー オブジェクトを作成する方法
私は現在、それぞれ DataReader と DataRow を含む 2 つのラッパー クラスを持っています。ラッパー クラスは、同じインターフェイス IIndexer を実装します。値を取得するために列にインデックスを付けるだけのメソッドがたくさんあるため、それらが使用されます。
次に例 を示します。同じコードを使用して DataRow または DataReader から読み取るにはどうすればよいですか?
ここで、Insert ステートメントの 3 番目のオプションが必要です。現在、DataRow を取得するための DataTables はなく、Db から読み取る必要もありません。
これは、IndexerWrapper (または DictionaryWrapper) を使用することで実現できます。
データベーステーブルの列情報が既にあるので、列をループして列名をキーとして追加します。
それを行うより良い方法はありますか?初期化する必要があるので、これはあまり便利ではありません。パフォーマンスはどうですか?これは将来、大きな質量に使用される可能性があり、現在は項目ごとに列名が保存されています。DataRows のコレクションと比較して、実際にオーバーヘッドはありますか?
ありがとう - マティ
ado.net - なぜ ExecuteReader() は文字列にトラリング スペースを埋め込むのですか?
2 つのクエリがあります。
使用すると、Q1 の場合と Q2 の場合にSystem.Data.Odbc.OdbcCommandExecuteReader
返されるDbDataReader
内容が含まれます。'Obama'
'Obama '
Q2 の場合、文字列の末尾にスペースが埋め込まれているのはなぜですか? また、その解決策は何ですか?
トリミングは醜く、場合によっては間違っています。.Net Framework 3.5 を使用しています。
ここにテストコードがあります
c# - DbDataReader を使用してデータベースからデータを読み取り中にエラーが発生しました
Oracle データベースからデータを読み取り、そのデータをリストに追加したいと考えています。しかし、アプリケーションを実行すると、「無効な操作です。接続が閉じられました。エラー。
これは私のコードです:
この問題を解決するのを手伝ってくれませんか。
c# - DbDataReader から DataGrid WPF へ
DbDataReader オブジェクトを返すモジュールがあります。これは、Windows.Forms の DataTable/DataGridView で試用され、信頼され、運用環境で使用されているモジュールであるため、変更したくありません。
DataTable を ItemsSource に渡して WPF で同じことを試みましたが、DataTable が実装していない IEnumerator を期待しているため、失敗しました。
DbDataReader がそのインターフェイスを実装していることを思い出し、ItemsSource が内部バッファーにデータを読み込もうとしている可能性があることに気がついたので、DbDataReader を渡してみました。
次に、DataTableExtensions を使用すると、DataTable から列挙子を取得できることがわかりました。しかし、データを反復しているようには見えません!
データを編集する必要はないことに注意してください。DbDataReader から取得したものは問題ありませんでした。必要なのは、このデータのコピーをグリッドで使用できるようにすることだけです...どうすればこれを行うことができますか?それは簡単でなければなりません!
助けてくれてありがとう!
要求に応じて、ここにコードがあります。
これは基本的に、私が Windows フォームで慣れているタイプのものです。
WPFと同等のものは何ですか?