2016-09-10 1 views
0

J'ai mis le code ci-dessous pour extraire des données de base de données Microsoft Access pour remplir un ComboBox dans VB.NETSélection de données entre les dates - « Aucune valeur donnée pour un ou plusieurs paramètres requis »

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 

Toutefois, lorsque le code est exécuté, je reçois une erreur « Aucune valeur donnée pour un ou plusieurs paramètres requis »

S'il vous plaît .. Guide

+0

Ne collez pas de chaînes ensemble pour créer du SQL. Utilisez les paramètres SQL pour pouvoir transmettre le type de données correct. – Plutonix

Répondre

0

La chaîne SQL que vous avez est "SELECT DISTINCT Test_Code FROM Table_Durability_Test WHERE Log_Date BETWEEN " & DtFrom.Text & " and " & DtTo.Text & ""

Si vous entrez un texte ou une chaîne à une base de données en utilisant SQL, vous devez entourer chaque entrée de texte avec des guillemets simples pour que votre chaîne SQL ressemblerait à ceci:

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

Notez que j'ai entouré le Value of DtTo.Text et Value of DtFrom.Text avec guillemets simples.