当前位置: 首页 > 面试题库 >

SQLDataReader行数

戈曾琪
2023-03-14
问题内容

我试图通过迭代读取器来获取返回的行数。但是运行此代码时,我总是得到1吗?我在这件事上搞砸了吗?

int count = 0;
if (reader.HasRows)
{
    while (reader.Read())
    {
        count++;
        rep.DataSource = reader;
        rep.DataBind();
    }
}
resultsnolabel.Text += " " + String.Format("{0}", count) + " Results";

问题答案:

SQLDataReaders是仅转发的。您实际上是在这样做:

count++;  // initially 1
.DataBind(); //consuming all the records

//next iteration on
.Read()
//we've now come to end of resultset, thanks to the DataBind()
//count is still 1

您可以改为:

if (reader.HasRows)
{
    rep.DataSource = reader;
    rep.DataBind();
}
int count = rep.Items.Count; //somehow count the num rows/items `rep` has.


 类似资料:
  • 问题内容: 我正在用C#编写一种从WCF服务查询SQL Server Express数据库的方法。我必须使用ADO.NET来做到这一点(然后稍后用LINQ重写它)。 该方法采用两个字符串(),然后从匹配记录中返回“ Health Insurance NO” (健康保险否)属性。我想将其读入列表(还有一些其他属性也可以检索)。 当前代码返回一个空列表。我要去哪里错了? 问题答案: 您正在尝试加载经>

  • 问题内容: 我该如何更改: 得到 MAX(FormID) 吗? 我的自然趋势是在FormID周围抛出一个MAX,但是我遇到了IndexOutOfRange异常。 问题答案: 当您选择最大ID时,您不应使用-查询仅返回一项,默认情况下未命名,因此您的现有查询会中断,因为它希望得到一个名为“ FormID”的结果-尽管您可以通过以下方式“固定”查询使用。而是使用:

  • 问题内容: 在我的数据库中,我具有NextStatDistanceTime值作为浮点数。执行“ ”行时,出现错误 系统无效的强制转换异常 如何在此代码中从sql命令获取浮点值? 这是我的代码: 问题答案: 我想是时候放一张桌子了。 T-SQL类型名称 相当于.NET C#类型名称 `DataReader` 方法 `FLOAT` `System.Double` `double` `IDataRead

  • 问题内容: 我正在尝试使用C#查找表的计数,但是我一直在获取 不存在数据时进行无效的读取尝试 我的代码: 我知道我与数据库之间存在有效的连接,因为我可以在许多地方进行读写操作,但是我无法正确读取数据库有何特别之处?我该如何填充? 问题答案: 您必须阅读: 或者,您可以只使用ExecuteScalar: 定义为: 执行查询,并返回查询返回的结果集中第一行的第一列。其他列或行将被忽略。

  • 问题内容: 问题继续,我发现自己一遍又一遍地编写以下代码: 必须嵌套两个using语句相当繁琐。有没有办法 告诉 SqlDataReader它拥有命令,并告诉命令它拥有连接? 如果有一种方法,那么我可以编写一个可以这样调用的辅助方法: 还是我必须忍耐一下,并通过SqlDataReader编写自己的包装器? 问题答案: 一件事就是编写一个为您处理的方法,并用每个结果调用一个委托。例如: 然后,Exe

  • 本文向大家介绍SqlDataReader指定转换无效的解决方法,包括了SqlDataReader指定转换无效的解决方法的使用技巧和注意事项,需要的朋友参考一下 SqlDataReader指定转换无效的解决方法,具体内容如下 SqlDataReader 自带的GetInt32(以及其他的比如GerString等)方法 只是获取数据库中对应数据类型的列,并不具有类型转化的功能,所以不能这样使用 解决方