2012-02-22 56 views
3

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

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的阅读,它是无法做到这一点,因为似乎没有在那里是任何价值。

我已经通过调试模式下的代码和文本框中的值是正确的,但仍然不会发生。

+0

你检查字符串连接的结果的日期格式? – phoog 2012-02-22 23:20:08

+3

尝试将您的sql字符串分配给文本变量,并使用调试器检查它是否如您所期望的那样。 – adrianbanks 2012-02-22 23:21:30

+0

这与Access无关,因为这是在它碰到数据库之前。这是从VS窗体到任何正在生成SQL的函数。可能希望逐步了解发生了什么。你有没有尝试过textboxEventDate.Text.ToString(“formathere”)? – 2012-02-22 23:28:27

回答

0

多小时,这个问题摆弄左右后,

解决方法是访问SQL喜欢在

#YYYY/MM/DD# 
+0

yyyy-MM-dd也应该有效。 – Bridge 2012-02-23 14:34:04

1

访问是有点棘手与SQL查询它的运行...

确保您获取日期是正确的格式,或者它分配一个格式的自我。

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

也确保有不使用任何的“保留字”

http://support.microsoft.com/kb/286335(保留列出所有引号必要的,在访问的话)

+0

[Event Date]大概是Date/Time字段。检查它与时间组件无关。 – ChrisPadgham 2012-02-23 01:24:31