【问题标题】:.net SqlDataReader VB C#.net SqlDataReader VB C#
【发布时间】:2014-05-23 10:18:22
【问题描述】:

我有这样的声明:

if (sqlClass.Reader != null && sqlClass.Reader.HasRows)
    {
        do
        {
            data = sqlClass.Reader.GetString(0); //error line System.InvalidOperationException {"Invalid attempt to read when no data is present."}
        } while (sqlClass.Reader.Read());
    }

对象sqlClass.Reader 的类型为System.Data.SqlClient.SqlDataReader

在 C# 中它给了我一个 InvalidOperationException 但在 VB 中它工作正常,这是什么原因以及我该如何解决这个问题?

【问题讨论】:

  • 显示整个错误和错误行。

标签: c# .net vb.net sqldatareader


【解决方案1】:

类似这样的:

if (null != sqlClass.Reader)
{
    while (sqlClass.Reader.Read())
    {
        data = sqlClass.Reader.GetString(0);
    }
}

【讨论】:

  • 该死的你打败了我。我正打算这么写。正如您所演示的那样,这是使用不同类型的 while 循环的问题
  • 你宁愿保留qlClass.Reader != null
  • sqlClass.Reader.HasRows 如果在这里没有用处
  • HasRows 检查阅读器是否检索到数据。空检查只会检查对象是否不为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2023-03-19
相关资源
最近更新 更多