为什么jgejala = drkonsultasi.item(0)评估为无效操作?

时间:2019-01-02 14:58:43

标签: vb.net ado.net oledb

我有此代码:

comkonsultasi = New OleDbCommand("select count(idkonsultasi) from dkonsultasi where idgejala='" & idgejala & "'", conn)
    drkonsultasi = comkonsultasi.ExecuteReader
    jgejala = drkonsultasi.Item(0)

运行时,我在最后一行收到此异常消息:

  

InvalidOperationException未处理。行/列没有数据。

任何人都可以帮助解决此问题吗?

1 个答案:

答案 0 :(得分:0)

您必须通过DataReader Read()。使用字符串连接将数据放入这样的SQL查询中也很困难。您必须改为使用查询参数:

Dim sql As String = "select count(idkonsultasi) from dkonsultasi where idgejala= ?"

Using conn As New OleDbConnection("connection string here"), _
      comkonsultasi As New OleDbCommand(sql, conn)
    'Use the actual type and length from the database for this line
    comkonsultasi.Parameters.Add("idgejala", OleDbType.VarWChar, 50).Value = idgejala 
    conn.Open()
    Using drkonsultasi As OleDbDataReader = comkonsultasi.ExecuteReader()
        If drkonsultasi.Read() Then
            jgejala = drkonsultasi.Item(0)
        End Using
    End Using
End Using