Member 13035794 Ответов: 1

Я получаю ошибку недопустимая попытка вызова метаданных при закрытом считывателе


Я получаю ошибку недопустимая попытка вызова метаданных при закрытом считывателе

Что я уже пробовал:

Private Sub checkdetails()
    sqlconn = New SqlConnection(str)
    sqlconn.Open()
    Try
        cmd = New SqlCommand("Select BillNo from OrderBill Where Date='" & Format(dtptoday.Value, "MM/dd/yyyy") & "'", sqlconn)
        dc = cmd.ExecuteReader
        While dc.Read
            If ComboBox1.Text.Length > 0 And ComboBox1.Text = dc(0).ToString Then
                Check_Bill()
            End If
        End While
        dc.Close()
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
    sqlconn.Close()

End Sub

1 Ответов

Рейтинг:
0

CHill60

Никогда не используйте сцепленные строки для текста команды Sql. Используйте параметры, например (непроверенные)

cmd = New SqlCommand("Select BillNo from OrderBill Where Date=@date", sqlconn)
cmd.Parameters.AddWithValue("@date", dtptoday.Value)

Используйте отладку, чтобы убедиться, что dc на самом деле он настроен на что-то. Вы также можете обернуть While петля с
If dc.HasRows Then
   ...
End If
Другая возможная причина заключается в том, что вы уже использовали dc в другом месте попробуйте изменить свой код на
Dim dc = cmd.ExecuteReader


Graeme_Grant

Меня отстранили прежде, чем я успел ответить. Дети... Отличная работа! :)