0

我正在尝试从 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”的方式有什么问题吗?

4

1 回答 1

1

命令文本似乎不正确。它缺少要搜索的字符串周围的单引号

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

如果State是一个字符串字段,那么对它的每次搜索都应该用单引号引起来。
当要搜索的字符串包含单引号时,请注意潜在的问题。

在这个简单的例子中,您可以直接使用字符串常量,但如果您使用用户输入呈现搜索动态,那么您应该使用参数化查询。

于 2013-04-04T23:22:39.247 回答