2012-10-08 69 views
1

剛學習了一下VB,並希望如下搜索一個非常簡單的SQL查詢:SQL查詢在VB - 缺少操作數

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    firstOrd = txtFirstOrd.Text 
    Me.OrdersBindingSource.Filter = "select * from orders WHERE firstDate =" & firstOrd 
End Sub 

我剛得到這個執行一個簡單的按鈕,並不斷收到這樣的:

Syntax error: Missing operand after 'orders' operator. 

Im相當肯定它是一個報價問題,但不能工作了!任何幫助將是偉大的!

回答

1

它看起來像你試圖使用bindingSource的過濾器。這filter property可包括條件檢查給定的BindingSource

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    firstOrd = txtFirstOrd.Text 
    Me.OrdersBindingSource.Filter = String.Format("firstDate = '{0}'", firstOrd) 
End Sub 

的每一行我假設firstOrd將包含DATETIME值,所以可以考慮在看看BindingSource.Filter by Date

+0

嗨Pilgerstorfer,是'firstOrd'是數據庫內的dataTime值。你能向我解釋'{0}'嗎?感謝您的幫助! – user1352057

+0

而不是連接我喜歡使用的每個字符串** String.Format **。這會在第一個值之後用'{0}'代替,(這裏:'firstOrder') –

+0

嘗試了Pilgerstorfer。我不能讓我的方法找到'.Filter By date'過濾功能。當我運行上面的代碼時,我得到以下內容:無法對System.DateTime和System.String執行'='操作。感謝您的幫助! – user1352057

1

這聽起來像你正在使用和SQL解釋器,它認爲orders SQL中的關鍵字。爲了清楚表明它是一個表名,請引用它。

"select * from [orders] WHERE firstDate =" & firstOrd 

但是,通常建議(但不總是實用)只是爲了避免表名是關鍵字。

+0

嗨康拉德,嘗試了以前,並得到這個語法錯誤:'[orders]'操作符後缺少操作數。 – user1352057