【问题标题】:ADO .NET Getting record countADO .NET 获取记录数
【发布时间】:2015-08-06 06:16:20
【问题描述】:

我这样从 MySQL 中打开了一条记录。

    Connection1 = Server.CreateObject("ADODB.Connection")
    Connection1.Open(DB_CONNECTIONSTRING)

    RS1 = Server.CreateObject("ADODB.Recordset")

    strSQL1 = "SELECT ... =" & Request.QueryString("ID")

    RS1.Open(strSQL1, Connection1, adOpenForwardOnly, adLockReadOnly, adCmdText)

如果有记录,一切都会运行良好。但是当没有记录时,它会给出错误“EOF 或 BOF 不正确或记录为空”。我正在尝试做这样的事情,以便如果记录集为空,它将显示 0.00。如果没有,它会显示金额。

    If RS1.recordcount = "1" Then
        amount = RS1.fields("item1").value.ToString()
    Else
        amount= 0.00
    End If

我该怎么办?谢谢

【问题讨论】:

    标签: vb.net ado


    【解决方案1】:

    根据 Mort 的回答 Mort's answerRS1.recordcount="1" 应该是 RS1.RecordCount > 0。对象类型在这里是错误的。

    可能的选项升级:

    amount = 0.0
    If Not RS1.EOF Then
        If RS1.RecordCount > 0 Then
            amount = RS1.fields("item1").Value.ToString()
        End If
    End If
    

    【讨论】:

      【解决方案2】:

      您可以测试 RecordSet 的 EOF 属性,然后进行条件处理。

      RecordSet Properties

      可能的选择:

          amount = 0.0
          If Not RS1.EOF Then
              If RS1.RecordCount > 0 Then
                  amount = RS1.fields("item1").value.ToString()
              End If
          End If
      

      【讨论】:

      • RecordCount 是浮点类型。不是字符串。如果条件检查大于 0 的值可能会更好。只是一个想法。
      • 谢谢。按建议更新。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多