首页 > 解决方案 > 为什么 jgejala = drkonsultasi.item(0) 评估为无效操作?

问题描述

我有这个代码:

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

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

InvalidOperationException 未处理。行/列不存在数据。

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

标签: vb.netado.netoledb

解决方案


你必须Read()从DataReader。使用字符串连接将数据放入这样的 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

推荐阅读