0
while (Running)
{
    while (rdr.Read())
    {
        List<PackageDetailFile> pkgFiles = rdr.Read().ToString().ToList();
    }
}

こんにちは、 read() は 7 8 列を持つ内部結合テーブルを返します。それらを List 内に格納することは可能ですか? rdr.read() の正しいキャスト方法がわかれば (文字列からリストへ ... ?)

4

2 に答える 2

1

クラスの構造と基礎となるデータに応じて、次のPackageDetailFileようなことができます

var packageDetailFiles = new List<PackageDetailFile>();

while (Running)
{
    while (rdr.Read())
    {
        var detailFile = new PackageDetailFile();

        // the following will depend on your data structure and class properties
        detailFile.Property1 = rdr.GetString(0);
        detailFile.Property2 = rdr.GetString(1);
        detailFile.Property3 = rdr.GetString(2);

        packageDetailFiles.Add(detailFile);
    }
}

注: AutoMapper などのアセンブリを使用して、データ リーダーから POCO にマップすることで、面倒な作業の必要性を減らし、MyObject.MyProperty = dataReader[collectionIndex]コードをより読みやすく、テストしやすくすることができます。

于 2012-07-17T11:57:22.883 に答える
0

rdrオブジェクトのGetValuesメソッドを使用してみてください。rdrはSqlDataReaderまたは別のDataReaderだと思います。

このメソッドは、現在の行のすべての列を含むオブジェクト配列を返します。その後、オブジェクト配列をオブジェクトのリストに格納できます。別のタイプのリストに保存する場合は、保存する前にすべての要素を正しいタイプにキャストする必要があります。

于 2012-07-17T11:59:51.857 に答える