将数据从数据读取器加载到数据表时发出问题

时间:2013-12-09 12:57:18

标签: c#-4.0 ado.net

当我将数据从数据读取器加载到数据表时,它跳过第一行。 例如,如果我在数据阅读器中有12行而在数据表中只有11行。

dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)    
dt.load(dr); 

请帮忙 Thanx提前!!!

2 个答案:

答案 0 :(得分:2)

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);
}

答案 1 :(得分:1)

查看文档,Load方法传递给DataReader而不检查:

if (dr.Read())

所以我会说,如果你删除了这一行,那么你将获得所有结果。 Read()会使读者前进一个记录。