我有一个存储过程返回一定数量的行。SqlDataAdapter和SqlDataReader
情况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中,总记录为15,其是正确的。
在情况2中,出于某种原因,reader.HasRows返回false。
我在语法上做错了什么?我相信我的命令已经正确构建,因为我确实得到了第一种情况的计数。
任何帮助将非常感激。
谢谢
可以或许表明你正在使用的SQL命令.. – MethodMan 2013-02-16 01:47:02
不可能从您发布的代码... – 2013-02-16 01:47:49
喜地说,如果我评论的reader.HasRows案例2 ,我仍然可以执行reader.Read()并获取recordCount的值。所以只是想知道是否有可能hasRows返回false,但仍然有读者指向查询的内容? – 2013-02-16 02:49:35