2013-05-08 88 views
0

我有一個數據(訪問),我使用的是datetimePicker。我有近千DATASC#兩個日期之間搜索

Name:  Birthday:  
AAAA   05.02.2000 
BBBB   01.08.1995 
CCCC   04.07.1995 
DDDD   05.07.1995 

我用2 dateTimePicker的和一個按鈕,datetimePicker2第一次,datetimePicker3最後時間,然後點擊過濾器按鈕。我想告訴我的datagridview上forexample 1995年1月1日 - 1995年1月12日他們是誰生名單

我用這個代碼:

private void btnFiltre_Click(object sender, EventArgs e) 
{ 
    table.Clear(); 
    OleDbDataAdapter adtr = new OleDbDataAdapter("SELECT * FROM data WHERE date BETWEEN'" + 
       dateTimePicker2.Text + "' AND '" + dateTimePicker3.Text + "'", cnn);   
    adtr.Fill(table); 
    dataGridView1.DataSource = table; 
} 

但我一直引以爲戒。

我能做些什麼?

+0

什麼是你所得到的警告? – devilfish17 2013-05-08 18:42:43

回答

1

許多細節丟失,但像往常一樣:不要使用字符串連接來構建sql命令。
使用參數化查詢這樣

private void btnFiltre_Click(object sender, EventArgs e) 
{ 
    table.Clear(); 
    OleDbDataAdapter adtr = new OleDbDataAdapter("SELECT * FROM data WHERE date BETWEEN ? AND ?", cnn) 
    adtr.SelectCommand.Parameters.AddWithValue("@p1",dateTimePicker2.Value) 
    adtr.SelectCommand.Parameters.AddWithValue("@p2",dateTimePicker3.Value) 
    adtr.Fill(table); 
    dataGridView1.DataSource = table; 
} 

詳細丟失:

  • 的數據庫您使用的?如果是MS-Access,則date 是保留關鍵字,需要用方括號封裝
  • 你在哪裏初始化連接? (不要使用全局連接對象)
  • 是您的日期字段日期時間或字符串(不好,非常不好)
+0

非常感謝你的工作...... :))) – 2013-05-08 18:51:40

相關問題