当我从数据阅读器向数据表加载数据时,它会跳过第一行。 例如,如果我在数据阅读器中有12行,那么只有11行即将到来。将数据从数据阅读器加载到数据表时出现问题
dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)
dt.load(dr);
请帮助 Thanx提前!
当我从数据阅读器向数据表加载数据时,它会跳过第一行。 例如,如果我在数据阅读器中有12行,那么只有11行即将到来。将数据从数据阅读器加载到数据表时出现问题
dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)
dt.load(dr);
请帮助 Thanx提前!
DataReader.Read
使读者进入下一行。
您不需要此检查,否则请改为使用HasRows
。
dt.load(dr);
注意,你也可以使用一个DataAdapter
加载DataTable
:
DataTable dt = new DataTable();
using(var con = new SqlConnection("ConnectionString"))
using(var da = new SqlDataAdapter("SELECT * FROM T", con))
{
da.Fill(dt);
}
望着文档,Load方法传递一个DataReader没有一张支票:
if (dr.Read())
所以我会说,如果你删除了这一行,那么你将得到你所有的结果。 Read()
将推动读者一个记录。
它的工作原理 Thanku这么多添添 – James
,它的工作原理,但我觉得比如果医生没有数据,它会给出错误 – James
@Ankit:没有,如果没有行,你得到一个空'DataTable'与所有列(测试)。从[MSDN](http://msdn.microsoft.com/zh-cn/library/4e06d41f(v = vs.110).aspx):_“架构操作发生在所有导入的结果集上,即使那些不包含数据。”_ –