2016-09-10 9 views
0

Ich habe setzen Sie folgenden Code zu extrahieren Daten aus Microsoft Access-Datenbank eine Combobox in VB.NET zu füllenAuswählen von Daten zwischen diesen Zeitpunkt - „Kein Wert für einen oder mehrere erforderlichen Parameter angegeben“

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 

jedoch, wenn der Code ausgeführt wird, erhalte ich eine Fehlermeldung „Kein Wert für eine oder mehrere erforderliche Parameter angegeben“

Bitte Führer ..

+0

Kleben Sie keine Strings zusammen, um SQL zu erstellen. Verwenden Sie SQL-Parameter, damit Sie den richtigen Datentyp übergeben können. – Plutonix

Antwort

0

Die SQL-Zeichenfolge, die Sie haben, ist "SELECT DISTINCT Test_Code FROM Table_Durability_Test WHERE Log_Date BETWEEN " & DtFrom.Text & " and " & DtTo.Text & ""

Wenn Sie einen Text oder eine Zeichenfolge in eine Datenbank mit SQL-Eingabe, Sie jede Texteingabe mit einfachen Anführungszeichen zu umgeben haben so Ihre SQL-Zeichenfolge würde wie folgt aussehen:

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

Beachten Sie, dass ich umgeben haben die Value of DtTo.Text und Value of DtFrom.Text mit einfache Anführungszeichen.

Verwandte Themen