Выбор данных между датами - для одного или нескольких обязательных параметров не задано значение

Я добавил следующий код для извлечения данных из базы данных Microsoft Access для заполнения поля со списком в VB.NET.

Private Sub PopulateList()
    If RBDura.Checked = True Then
        CmbTstNo.Items.Clear()
        myConnection.ConnectionString = connstring
        Try
            myConnection.Open()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        str = "SELECT DISTINCT Test_Code FROM Table_Durability_Test WHERE Log_Date BETWEEN " & DtFrom.Text & " and " & DtTo.Text & ""
        cmd = New OleDbCommand(str, myConnection)
        dr = cmd.ExecuteReader
        While dr.Read()
            CmbTstNo.Items.Add(dr.Item(0))
        End While
        myConnection.Close()
        CmbTstNo.SelectedIndex = 0
    End If
End Sub

Однако при запуске кода я получаю сообщение об ошибке «Нет значения для одного или нескольких обязательных параметров».

Пожалуйста, руководство..


person Prashant    schedule 10.09.2016    source источник
comment
Не склеивайте строки вместе, чтобы сделать SQL. Используйте параметры SQL, чтобы вы могли передать правильный тип данных.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 10.09.2016


Ответы (1)


Строка SQL у вас есть "SELECT DISTINCT Test_Code FROM Table_Durability_Test WHERE Log_Date BETWEEN " & DtFrom.Text & " and " & DtTo.Text & ""

Если вы вводите текст или строку в базу данных с помощью SQL, вы должны заключить каждую текстовую запись в одинарные кавычки, чтобы ваша строка SQL выглядела следующим образом:

SELECT DISTINCT Test_Code FROM Table_Durability_Test WHERE Log_Date BETWEEN 'Value of DtFrom.Text' and 'Value of DtTo.Text'

Обратите внимание, что я заключил Value of DtTo.Text и Value of DtFrom.Text в одинарные кавычки.

person Francis Rubio    schedule 27.09.2016