可能是重复的问题:
如何轻松地将DataReader转换为List<T>?
我想返回一个列表,它将存储sqldatareader
的值。 我该怎么做。
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);
}
}
同时检查此先前提出的问题: 如何轻松将DataReader转换为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;
}
虽然这是一篇旧的讨论,但你可以试试这个方法。
强制类型转换你的字段,并将行转换为 DbDataRecord 对象。 例如:
Dim _Query = (From row In _Results.Cast(Of DbDataRecord)().AsParallel()
Select New uTyping.Profile() With {
.Id = row(0),
.Firstname = row(6)
}).ToList()
result.Add( new Foo() { Prop1 = reader.GetInt32(0), Prop2 = reader.GetString(1) } );
。 - Justin