次のコードを使用して、2 つのテーブルからデータを取得し、ComboBox にその情報を入力しようとしています。次に、ユーザーが ComboBox から値を選択すると、フォーム上のすべてのコントロールに、ComboBox の値と一致する DB から取得したデータを入力したいと考えています (これを行う方法はまだわかりません)。
注: エラーに表示されている 1090 は、InputBox コントロールから受け取り、それに TextboxAccount.Text 値を設定しているアカウント番号です。したがって、これが私の問題なのかどうかはわかりません。
スローされる VB 例外は次のとおりです。
「SQL 構文にエラーがあります。1 行目の 'customer.accountNumber = '1090" 付近で使用する正しい構文については、MySQL バージョンに対応するマニュアルを確認してください」
これが私のコードです:
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