我正在尝试从MySQL数据库填充Combobox;但我什么都没得到。 以下是代码。
表:类
列:代码,状态
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 :(得分:1)
命令文本似乎不正确。它缺少要搜索的字符串周围的单引号
sqlstr = "SELECT * FROM Class WHERE State='Not Started'"
^ ^
如果State
是字符串字段,那么对它的每次搜索都应该用单引号括起来
当要搜索的字符串包含单引号时,请注意潜在的问题。
在这个简单的例子中,您可以直接使用字符串常量,但如果使用用户输入呈现搜索动态,则应使用参数化查询。