当我将数据从数据读取器加载到数据表时,它跳过第一行。 例如,如果我在数据阅读器中有12行而在数据表中只有11行。
dataReader dr=new DataReader();
DataTable dt=new DataTable();
if(dr.read)
dt.load(dr);
请帮忙 Thanx提前!!!
答案 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()
会使读者前进一个记录。