2013-04-04 30 views
0

我想從MySQL數據庫填充組合框;但我什麼都沒有得到。 以下是代碼。VB.NET:使用MySQL查詢填充組合框

表:類

列:代碼,國家

sqlstr = "SELECT * FROM Class WHERE State= Not Started" 
DBCmd = New MySql.Data.MySqlClient.MySqlCommand(sqlstr, DBConn) 
DBDR = DBCmd.ExecuteReader 
While (DBDR.Read()) 
CB_Class.Items.Add(DBDR("Code")) 
End While 
DBCmd.Dispose() 
DBDR.Close() 

我相信結果是錯誤的,因爲至少有2條記錄與他們的狀態值設定爲「未啓動」。哪裏不對?我寫「State = Not Started」的方式有什麼問題嗎?

+0

該程序正常工作,直到達到DBDR = DBCmd.ExecuteReader。它不會再執行任何操作。 – 2013-04-04 23:20:16

回答

1

命令文本看起來不正確。它缺乏字符串周圍的單引號搜索

sqlstr = "SELECT * FROM Class WHERE State='Not Started'" 
             ^  ^

如果State是一個字符串字段,然後在它的每一個搜索應該用單引號。
當要搜索的字符串包含單引號時,請小心潛在的問題。

在這種簡單的情況下,您可以直接使用字符串常量,但如果您使用用戶輸入呈現搜索動態,那麼您應該使用參數化查詢。

+0

非常感謝! 我懂了! – 2013-04-04 23:30:51