【发布时间】:2020-02-24 18:05:11
【问题描述】:
我正在尝试在 vb.net 中使用 MySQL 在组合框中显示值。现在我面临的问题是组合框没有显示来自 MySQL 的值。我有以下代码:
MySqlConn = New MySqlConnection
MySqlConn.ConnectionString = "server=localhost;userid=root;password=root;database=s974_db"
Try
MySqlConn.Open()
Label21.Text = "DB Connection Successful"
Dim Query As String
Query = "select * from s974_db.processors where Name='" & ComboBox1.Text & "'"
COMMAND = New MySqlCommand(Query, MySqlConn)
READER = COMMAND.ExecuteReader
While READER.Read
Label10.Text = READER.GetDouble("Price")
End While
MySqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MySqlConn.Dispose()
End Try
但是,使用上面的代码 Combobox1.Text 什么都不返回,但如果我使用下面的代码,它有不同的查询,它可以工作:
MySqlConn = New MySqlConnection
MySqlConn.ConnectionString = "server=localhost;userid=root;password=root;database=s974_db"
Try
MySqlConn.Open()
Label21.Text = "DB Connection Successful"
Dim Query As String
Query = "select * from s974_db.processors"
COMMAND = New MySqlCommand(Query, MySqlConn)
READER = COMMAND.ExecuteReader
While READER.Read
Dim sName = READER.GetString("Name")
ComboBox1.Items.Add(sName)
End While
MySqlConn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
MySqlConn.Dispose()
End Try
有人可以检查并告诉我可能是什么问题吗?谢谢!
【问题讨论】:
-
请学习如何在vb net中使用prepared statements,因为当你的第一个代码不起作用时,每个代码都可能受到sql注入的影响,mysql告诉你你没有符合那个标准的数据。如果它们在 mysql 工作台中不起作用,请测试您的查询以查看它们是否给出任何结果还检查组合框的文本
-
第一个代码示例似乎只设置了标签文本属性。第二个代码示例设置组合框项。
-
Query = "select * from s974_db.processors where Name='" & ComboBox1.Text & "'"- 请显示Debug.Print Query。 -
@nbk 组合框文本为空。但是,我不能在 MySQL 中测试该命令,因为它涉及组合框,这意味着它不起作用。
-
@AndrewMortimer 第一个代码示例应该至少填充组合框,至少这是这个想法,但它不会第二个代码示例工作正常,但我无法用它实现我需要的.我正在尝试从表中获取名称并填充到组合框中,然后当基于该名称选择名称时,它会使用价格填充标签。