2017-10-19 3 views
-3

Ich habe ein Problem in meinem Code. Ich möchte zwischen zwei Daten filtern. Hier ist mein Code. Ich verwende Microsoft Access-Datenbank.Kein Wert angegeben für einen oder mehrere erforderliche Parameter mit datetimepicker

private void button2_Click(object sender, EventArgs e) 
{ 
    OleDbCommand cmd = new OleDbCommand("Select * From Table2 where TransacDate between '" + dateTimePicker1.Value.ToString() + "' And '" + dateTimePicker2.Value.ToString() + "'", conn); 
    OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    dataGridView1.DataSource = ds; 
} 

Jetzt ist eine leere Zeile in meinem Datagridview.

+0

Was ist die tatsächliche resultierende Zeichenfolge des SQL-Codes, den Sie ausführen? Können Sie es manuell auf der Datenbank ausführen? – David

+0

Können Sie die Abfrage zuerst in eine Zeichenfolge einfügen und uns den Inhalt dieser Zeichenfolge anzeigen? Wie in 'var debugString =" Wählen Sie * Aus Tabelle2 wobei Transac_Date zwischen '"+ dataTimePicker1.Value.ToString (" MM-dd-yyy ") +"' Und '"+ dateTimePicker2.Value.ToString (" MM- dd-yyy ") +" '";' – oerkelens

+0

Fertig in eine Zeichenfolge. @oerkelens – dad

Antwort

2

Ich habe vor kurzem den gleichen Fehler mit einem Datetime-Format gemacht.

Versuchen

"MM-dd-yyyy" 

statt

"MM-dd-yyy" 
+0

Das ist meine Theorie, es dauert entweder yy oder yyyy. Das yyy könnte das wegwerfen. –

+0

Ich ändere es bereits von yyy zu yyyy und der Fehler ist der gleiche. – dad

+0

Sind Sie sicher, dass es sich um den datetimepicker handelt, an dem es hängt? Versuchen Sie diese Änderung, 'OleDbDataAdapter da = neuer OleDbDataAdapter (cmd, conn);' wie ich glaube, dass immer eine Verbindung zur Referenz benötigt. –

0

Daten in Access sollte von # octothorpes eingeschlossen werden.

Ändern Sie Ihren Code:

"Select * From Table2 where Transac_Date between #" + dateTimePicker1.Value.ToString("MM-dd-yyyy") + "# And #" + dateTimePicker2.Value.ToString("MM-dd-yyyy") + "#"; 
+0

ich versuchte '#', der gleiche Fehler erscheint. – dad

0

Es ist unklar, was App oder Front-End wird diese SQL-Anweisung zu erzeugen. Es sieht nicht wie Access-Syntax aus.

Ich würde in Access vorschlagen, die Standardabfrageentwurfsansicht zu verwenden - und eine Abfrage zu erstellen, die zu dem Datensatz führt, den Sie suchen. Dann können Sie diese Abfrage in die SQL-Ansicht stellen, um die Syntax zu sehen.

Verwandte Themen