如何将sqlDatareader转换为List<>

时间:2010-07-08 06:34:15

标签: c#

  

可能重复:
  How can I easily convert DataReader to List<T>?

我想返回将存储sqldatareader值的列表。我怎么能这样做..

3 个答案:

答案 0 :(得分:8)

using (var reader = cmd.ExecuteReader())
{
    var result = new List<Foo>();
    while (reader.Read())
    {
        var foo = new Foo 
        {
            Prop1 = reader.GetInt32(0),
            Prop2 = reader.GetString(1),
        }
        result.Add(foo);
    }
}

答案 1 :(得分:1)

同时检查此前询问过的问题:How can I easily convert DataReader to List<T>?

选中此类型的通用类型:

public ConvertToList<T>(SqlDataReader sqldr, int index)
        {
            List<T> list = new List<T>();

            while (sqldr.Read())           {
               list.Add((T)sqldr.GetValue(index));               index++;   
            }

            return list;
        }

答案 2 :(得分:0)

旧的讨论,但尝试这个尺寸。

强烈输入您的字段,并将您的行转换为DbDataRecord对象。 例如:

                    Dim _Query = (From row In _Results.Cast(Of DbDataRecord)().AsParallel()
                            Select New uTyping.Profile() With {
                                .Id = row(0),
                                .Firstname = row(6)
                            }).ToList()