2016-06-17 11 views
0

möchte ich Daten aus MS Access Datenbank wählen, in C# ich diese Abfrage verwendenwählen Daten aus MS Access Datenbank nach Datum in C#

da = new OleDbDataAdapter(
    "SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] between #" 
     + dateTimePicker2.Value.ToString() 
     + "# AND #" 
     + dateTimePicker3.Value.ToString() 
     + "#", 
    VCON); 

es zurückgeben mich null mir bitte helfen.

+0

Was ist '#' hier. – Mairaj

+0

@Leopard: Dies ist das Datum/Uhrzeit-Trennzeichen in Access. – Gustav

Antwort

0

Sie müssen Datumsformat wie:

dateTimePicker2.Value.ToString("yyyy/MM/dd") 

können Sie auch tun:

da = new OleDbDataAdapter(
     "SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] between " 
      + dateTimePicker2.Value.ToString("#yyyy/MM/dd#") 
      + " AND " 
      + dateTimePicker3.Value.ToString("#yyyy/MM/dd#") , 
     VCON); 

Aber ich Sie beraten die Parameter zu verwenden, SQL-Injektionen zu vermeiden, wie folgt aus:

string query = "SELECT [Column1],[Column2],[Column3],[Date] from [Total] Where [Date] " + 
       "BETWEEN @startDate AND @endDate"; 
OleDbCommand cmd = new OleDbCommand(query, VCON); 
cmd.Parameters.AddWithValue("@startDate ", DbType.DateTime).Value = 
              dateTimePicker1.Value.ToString("yyyy/MM/dd"); 
cmd.Parameters.AddWithValue("@endDate ", DbType.DateTime).Value = 
              dateTimePicker2.Value.ToString("yyyy/MM/dd"); 
da = new OleDbDataAdapter(cmd);