2012-02-22 54 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