-2

次のような結果セットがあります-

ID, Name, Address
1,John, Japan
2,Sarah, UK
3,Jeremy, USA

結果セット/レコードセットで上記から任意の列を選択し、その列の行を反復できるようにしたいと考えています。それ、どうやったら出来るの ?

4

2 に答える 2

1

SqlDataReader次のように、特定の列からすべての値を読み取る拡張メソッドを追加することを検討してください。

static IEnumerable<T> ReadColumn<T>(this SqlDataReader rdr, int index) {
    while (rdr.Read()) {
        yield return (T)rdr.GetValue(index);
    }
}

このメソッドを使用すると、次のようにクエリから単一の列を読み取ることができるはずです。

var i = 1;
foreach (string name in cmd.ExecuteReader().ReadColumn<string>(1)) {
    Console.WriteLine("Name {0} = {1}", i++, name);
}
于 2013-10-21T23:49:04.643 に答える
1

ツリー プロパティを持つオブジェクト (例: Person) を追加する必要があります: ID、名前、およびアドレス

次に、そのタイプのオブジェクトを含むリストを作成できます。

元:

List<Person> persons; 

var names =  persons.Select(p => Name);

3 つのプロパティすべてに対して同じことができます。

于 2013-10-21T23:44:00.933 に答える