如何从DataReader的投入值放入名单,其中,T&GT;? [英] How to put values from DataReader into List<T>?
问题描述
我希望把它从DataReader对象中的一个泛型列表传来的数据。我曾经做过这样的,但它不工作...
我收到的foreach中连续投异常错误!
SqlDataReader的pointreader = cmd2.ExecuteReader();
VAR pointt =新的名单,其中,INT&GT;();
而(pointreader.Read())
{
的foreach(在pointreader INT项)
{
pointt.Add(项目);
如果(pointt.Contains(点))
{
matchpoint =项目;
}
}
}
SqlDataReader对象不能在你所描述的,因为它没有实现IEnumerable的方式进行访问。相反,你需要单独访问每个字段:
SqlDataReader的puanoku = cmd2.ExecuteReader();
名单&LT; INT&GT; puann =新的名单,其中,INT&GT;();
而(puanoku.Read())
{
的for(int i = 0; I&LT; puanoku.FieldCount;我++)
{
如果(puanoku.GetFieldType(ⅰ)== typeof运算(INT))
{
//做的东西在这里
}
}
}
如果你只选择了一列,可以肯定,它是一个整数,那么可以简化code像这样:
SqlDataReader的puanoku = cmd2.ExecuteReader();
名单&LT; INT&GT; puann =新的名单,其中,INT&GT;();
而(puanoku.Read())
{
int值= puanoku.GetInt32(1);
//做一些与这里的INT ...
}
这文章可能是一些使用。
Possible Duplicate:
How can I easily convert DataReader to List<T>?
I want to put the data which is coming from datareader object in a generic list. I have done like this but it doesn't work...
I am getting cast exception error in foreach row!
SqlDataReader pointreader = cmd2.ExecuteReader();
var pointt = new List<int>();
while (pointreader.Read())
{
foreach (int item in pointreader)
{
pointt.Add(item);
if (pointt.Contains(point))
{
matchpoint = item;
}
}
}
SqlDataReader cannot be accessed in the way you have described as it does not implement IEnumerable. Instead you need to access each field individually:
SqlDataReader puanoku = cmd2.ExecuteReader();
List<int> puann = new List<int>();
while (puanoku.Read())
{
for (int i = 0; i < puanoku.FieldCount; i++)
{
if (puanoku.GetFieldType(i) == typeof(int))
{
// Do something here
}
}
}
If you've only selected one column and are certain that it is an int then you can simplify the code like so:
SqlDataReader puanoku = cmd2.ExecuteReader();
List<int> puann = new List<int>();
while (puanoku.Read())
{
int value = puanoku.GetInt32(1);
// Do something with the int here...
}
This article may be of some use.
这篇关于如何从DataReader的投入值放入名单,其中,T&GT;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!