我相信你一切都好。我想知道我做错了什么,以及如何解决它。我的意图与下面的代码是查询我的MySQL数据库,并在ComboBox中显示表的一列。然后,当选择ComboBox中的值时,我希望所有记录都被填充到表单上的其他控件中(我将为此部分创建一个单独的问题)。组合框没有填充MySQL查询结果 - 我该如何解决它?
现在,查询正在运行,但组合框未被填充。我究竟做错了什么?请帮忙,谢谢。
这里是我的代码:
Private Sub RetrieveMySQLdata()
Try
Dim dbConn As New MySqlConnection
Dim dbQuery As String = ""
Dim dbCmd As New MySqlCommand
Dim dbAdapter As New MySqlDataAdapter
Dim dbTable As New DataTable
If dbConn.State = ConnectionState.Closed Then
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 = "ccNumber"
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
你做错的第一件事是使用内联SQL查询。 – TLS
以为你提供的解决方案。但是,是的,你是对的。我这样做是因为我还没有学到其他的方法 - 我仍然在学习。 –
由于您仍在学习,您需要阅读“SQL注入攻击”以及如何防止/避免它们。这会给你关于不使用内联SQL查询的知识。 – TLS