SqlDataAdapter and SqlDataReader
本文关键字:SqlDataReader and SqlDataAdapter | 更新日期: 2023-09-27 17:59:31
我有一个存储过程,它返回一定数量的行。
案例1:当我使用SqlDataAdapter 时
SqlDataAdapter sdAdapter = new SqlDataAdapter();
ds = new DataSet();
sdAdapter.SelectCommand = myCommand;
sdAdapter.Fill(ds);
int recordCount = ds.Tables[0].Rows.Count;
案例2:当我使用SqlDataReader 时
SqlDataReader reader = myCommand.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
recordCount++;
}
}
在情况1中,recordCount为15,这是正确的。
在案例2中,出于某种原因,读者。HasRows返回false。
我在语法方面做错了什么吗?我相信myCommand的构建是正确的,因为我确实在案例1中得到了计数。
如有任何帮助,我们将不胜感激。
感谢
1.DataReader在连接的环境中工作,而DataSet在断开连接的环境中工作。2.数据集表示由任意数量的相互关联的DataTable对象组成的数据的内存缓存。DataTable对象表示内存中数据的表格块。
更多详细信息请访问sqldataadapter或sqldatareader
if (reader.HasRows)
是多余的。当您说while (reader.Read())
时,它只会在有任何行的情况下循环。此外,这个链接将解释HasRows需要一个可滚动的光标。请在此处阅读有关光标的信息。