列の値、つまり列名と特定の行の行の値を 2 つの別々のリストに保存したいと考えています。Provider
とDocument
の両方ですList<string>
。しかし、Document
I'm usingとの型の競合があるvar Document
ため、コンパイラはそれを受け入れます。
次のコードは、var Document = Enumerable.Range(0, dr.FieldCount).Select(dr.GetValue).ToList();
OleDbCommand cmd = new OleDbCommand(abfrage, conn);
OleDbDataReader dr;
try
{
conn.Open();
dr = cmd.ExecuteReader();
Provider = Enumerable.Range(0, dr.FieldCount)
.Select(dr.GetName)
.ToList();
// Following line will throw exception
var Document = Enumerable.Range(0, dr.FieldCount)
.Select(dr.GetValue)
.ToList();
dr.Close();
dr.Dispose();
}
catch (System.InvalidOperationException inv)
{
MessageBox.Show(inv.Message);
throw;
}
最初のリストには列名が正しく格納されていますが、もう 1 つのリストは をスローしInvalidOperationException
、行にも列にも値がないことを示しています。これは、一部の列では正しいです (それらは空です)。すべての列/行に値がある別の DB テーブルでテストしましたが、ここでも同じ例外が発生します。
私は何を間違っていますか?
前もって感謝します!
編集:
リーダーによる読み取り値を示す 2 つのスクリーンショットを次に示します。
列名を持つ最初のもの (値はグレー表示されています。機密データです): 最初の結果
行全体の値を持つ 2 つ目: 値の読み取り