2010-01-12 98 views
1

我有一個名爲充值在Access數據庫中的表。從Access數據庫中的日期X和日期Y之間獲取記錄?

某些字段是RechargeDate,帳戶號碼等

我想兩個日期之間檢索的所有記錄,所以我寫了下面的查詢:

string Query = "select * from Recharge where Account='" + comboBox1.Text + "' 
and RechargeDate between '"+dateTimePicker1.Value.Date.ToShortDateString()+"' and '"+dateTimePicker2.Value.Date.ToShortDateString()+"'" 

查詢運行正常,但我唯一遇到的問題是我只能從一個月內檢索日期。

如果我要求跨度超過一個月的記錄,我沒有得到正確的結果。

任何幫助?

執行查詢不錯,但問題是,我只能能夠單月之間的日期以獲得詳細信息,如果起始月份和結束的月份不同,我不能得到正確的結果plzz幫我

回答

3

也許你遇到了一些字符串日期格式問題;試試這個代碼:

OleDbCommand command = new OleDbCommand(
    "SELECT * FROM Recharge " + 
    "WHERE [email protected] and " + 
    "RechargeDate between @RechargeDateStart AND @RechargeDateEnd"); 
command.Parameters.AddWithValue("@Account", comboBox1.Text); 
command.Parameters.AddWithValue("@RechargeDateStart",dateTimePicker1.Value.Date); 
command.Parameters.AddWithValue("@RechargeDateEnd" ,dateTimePicker2.Value.Date); 

順便說一句,你不應該試圖連接SQL命令,因爲這可能導致SQL注入攻擊。

0

我已經使用此與成功,Recharge >= Date1 and Recharge <= Date2我沒有使用between也許它是更高效的,但我使用前者。

+0

> =和<=應該與Between/And完全相同。如果你不希望它是包容性的,你不能在Between/And和Jet/ACE之間使用。不過,其他數據庫引擎可能會以不同的方式處理。 – 2010-01-12 22:24:14

相關問題