我相信你一切都好。我想知道我做錯了什麼,以及如何解決它。我的意圖與下面的代碼是查詢我的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