执行带有日期的SQL Where语句时出现问题

时间:2012-02-22 23:13:24

标签: c# sql visual-studio-2010 ms-access-2007

当我在Access 2010中对值进行硬编码并执行SQL语句时,将执行该命令并返回所需的值。

SELECT [Event ID], [Crowd Size], [Event Name] FROM Event WHERE ([Event Date]=#8/11/2012#) AND ([Event Name]="Peter")

但是,当我使用文本框代替硬编码值时

("SELECT [Event ID], [Crowd Size], [Event Name] FROM [Event] WHERE ([Event Name]='" + textBoxEventName.Text + "') AND ([Event Date]=#" + textBoxEventDate.Text + "#)");

当尝试从datareader读取时,它无法这样做,因为那里似乎没有任何值。

我已经在调试模式下完成了代码,文本框中的值是正确的,但仍然没有发生。

3 个答案:

答案 0 :(得分:1)

使用它运行的SQL查询进行访问有点棘手......

确保您抓取的日期格式正确,或者为自己指定格式。

http://msdn.microsoft.com/en-us/library/az4se3k1.aspx(标准日期和时间格式字符串)

还要确保所有必要的引号并且您没有使用任何“保留字”

http://support.microsoft.com/kb/286335(Access中的保留字列表)

答案 1 :(得分:0)

试试这个:请参阅此页:http://www.tizag.com/sqlTutorial/sqlselect.php

答案 2 :(得分:0)

经过几个小时摆弄这个问题后,

解决方案是Access SQL喜欢格式为

的日期
#YYYY/MM/DD#