2010-01-12 78 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

相关问题