我正在使用以下代码尝试从两个表中检索数据并使用该信息填充 ComboBox。然后,当用户从 ComboBox 中选择一个值时,我想使用从 DB 中检索到的与 ComboBox 的值匹配的数据填充表单上的所有控件(仍然没有弄清楚如何做到这一点)。
注意: 错误中显示的 1090 是我从 InputBox 控件接收的帐号,然后将 TextboxAccount.Text 值设置为它。所以我不确定这是否是我的问题所在。
这是抛出的VB异常:
“您的 SQL 语法有错误;请查看与您的 MySQL 版本相对应的手册,以在第 1 行的 'customer.accountNumber = '1090” 附近使用正确的语法”
这是我的代码:
Private Sub RetrieveMySQLdata()
Try
'FOR MySQL DATABASE USE
Dim dbConn As New MySqlConnection
Dim dbQuery As String = ""
Dim dbCmd As New MySqlCommand
'Dim dbData As MySqlDataReader
Dim dbAdapter As New MySqlDataAdapter
Dim dbTable As New DataTable
If dbConn.State = ConnectionState.Closed Then
'dbConn = New MySqlConnection
dbConn.ConnectionString = String.Format("Server={0};Port={1};Uid={2};Password={3};Database=accounting", FormLogin.ComboBoxServerIP.SelectedItem, My.Settings.DB_Port, My.Settings.DB_UserID, My.Settings.DB_Password)
dbConn.Open()
End If
dbQuery = "SELECT *" & _
"FROM cc_master INNER JOIN customer ON customer.accountNumber = cc_master.customer_accountNumber" & _
"WHERE customer.accountNumber = '" & TextBoxAccount.Text & "'"
With dbCmd
.CommandText = dbQuery
.Connection = dbConn
End With
With dbAdapter
.SelectCommand = dbCmd
.Fill(dbtable)
End With
Dim i As Integer
For i = 0 To dbTable.Rows.Count - 1
ComboBoxCard.ValueMember = "cc_Number"
Next
Catch ex As Exception
MessageBox.Show("A DATABASE ERROR HAS OCCURED" & vbCrLf & vbCrLf & ex.Message & vbCrLf & _
vbCrLf + "Please report this to the IT/Systems Helpdesk at Ext 131.")
End Try
End Sub