Почему jgejala = drkonsultasi.item (0) оценивается как недопустимая операция? - PullRequest
0 голосов
/ 02 января 2019

У меня есть этот код:

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

При запуске я получаю сообщение об исключении в последней строке:

InvalidOperationException не обрабатывается.Для строки / столбца не существует данных.

Может кто-нибудь помочь решить эту проблему?

1 Ответ

0 голосов
/ 02 января 2019

Вы должны 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
...