首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlDataAdapter和SqlDataReader

SqlDataAdapter和SqlDataReader
EN

Stack Overflow用户
提问于 2013-02-16 09:25:04
回答 2查看 1.8K关注 0票数 1

我有一个存储过程,它返回一定数量的行。

案例1:当我使用SqlDataAdapter时

代码语言:javascript
复制
SqlDataAdapter sdAdapter = new SqlDataAdapter();
ds = new DataSet();
sdAdapter.SelectCommand = myCommand;
sdAdapter.Fill(ds);
int recordCount = ds.Tables[0].Rows.Count;

案例2:当我使用SqlDataReader时

代码语言:javascript
复制
SqlDataReader reader = myCommand.ExecuteReader();
if (reader.HasRows)
{
   while (reader.Read())
    {
     recordCount++;
    }
 }

在情况1中,recordCount是15,这是正确的。

在第二种情况下,由于某些原因,reader.HasRows返回false。

我在语法方面做错了什么吗?我确信myCommand已经被正确构建,因为我在第一种情况下得到了计数。

任何帮助都将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-16 11:08:01

if (reader.HasRows)是多余的。当您说while (reader.Read())时,它只会在有任何行的情况下循环。此外,this link将解释HasRows需要一个可滚动的游标。阅读有关游标here的内容。

票数 0
EN

Stack Overflow用户

发布于 2013-03-16 00:36:55

1. DataReader在连接的环境中工作,而DataSet在断开连接的环境中工作。2. DataSet表示由任意数量的相互关联的DataTable对象组成的内存中的数据缓存。DataTable对象表示内存中数据的表格块。

更多详情请访问sqldataadapter or sqldatareader

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14905945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档