Как я могу решить синтаксическую ошибку в VB.NET с базой данных access
Ребята, пожалуйста, помогите мне решить эту синтаксическую ошибку при вставке данных в access from VB.net
Что я уже пробовал:
Private Sub btnSaveClient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveClient.Click 'Validating form controls to check the NULL If Len(Trim(btnGenerateID.Text)) = 0 Then MessageBox.Show("Click The Blue Button to Generate Client ID", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub btnGenerateID.Focus() End If If Len(Trim(dtpRegtrationDate.Text)) = 0 Then MessageBox.Show("Eneter Registration Date", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub dtpRegtrationDate.Focus() End If If Len(Trim(cmbPhoneStatus.Text)) = 0 Then MessageBox.Show("Choos Phone Status", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub cmbPhoneStatus.Focus() End If If Len(Trim(cmbBrandStatus.Text)) = 0 Then MessageBox.Show("Chooce Brand Status", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub cmbBrandStatus.Focus() End If If Len(Trim(cmbCategory.Text)) = 0 Then MessageBox.Show("Chooce Category", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub cmbCategory.Focus() End If If Len(Trim(txtPhoneType.Text)) = 0 Then MessageBox.Show("Enter Phone Model", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtPhoneType.Focus() End If If Len(Trim(CmbSIM.Text)) = 0 Then MessageBox.Show("Chooce SIM Yes/No", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub CmbSIM.Focus() End If If Len(Trim(CmbSDCard.Text)) = 0 Then MessageBox.Show("Chooce SD Card Yes/No", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub CmbSDCard.Focus() End If If Len(Trim(txtClientID.Text)) = 0 Then MessageBox.Show("Click Client ID", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtClientID.Focus() End If If Len(Trim(txtClientName.Text)) = 0 Then MessageBox.Show("Enter Client Name", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtClientName.Focus() End If If Len(Trim(cmbGender.Text)) = 0 Then MessageBox.Show("Chooce Gender", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub cmbGender.Focus() End If If Len(Trim(txtLocation.Text)) = 0 Then MessageBox.Show("Enter Location", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtLocation.Focus() End If If Len(Trim(txtContact1.Text)) = 0 Then MessageBox.Show("Enter 1st Contact ", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtContact1.Focus() End If If Len(Trim(txtContact2.Text)) = 0 Then MessageBox.Show("Enter 2nd Contact", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtContact1.Focus() End If If Len(Trim(txtRemarks.Text)) = 0 Then MessageBox.Show("Enter Remarks", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub txtRemarks.Focus() End If Try 'Writing SQL statement to insert the values into the Database sql = "INSERT INTO Client Registration VALUES ('" & txtClientID.Text & "','" & dtpRegtrationDate.Text & "','" & cmbPhoneStatus.Text & "','" & cmbBrandStatus.Text & "','" & cmbCategory.Text & "','" & CmbSIM.Text & "','" & CmbSDCard.Text & "','" & txtClientName.Text & "','" & cmbGender.Text & "','" & txtLocation.Text & "','" & txtPhoneType.Text & "','" & txtContact1.Text & "','" & txtContact2.Text & "','" & txtRemarks.Text & "')" ''" & str & "' da = New OleDb.OleDbDataAdapter(sql, con) da.Fill(ds, "Client Registration") MessageBox.Show("Client Registration Sucessfully Completed", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information) clear() ' Calling clear method to clear the form controls Catch ex As Exception MessageBox.Show(ex.Message, "Exception generated", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub
Richard MacCutchan
Какая ошибка и где она происходит? Пожалуйста, не просто сбрасывайте груз неформатированного кода и не ожидайте, что люди сделают всю вашу работу за вас. В качестве первого прохода я должен сказать, что вы создаете свой SQL-оператор опасным образом. Никогда не используйте конкатенацию строк, но используйте правильные параметризованные запросы (Google найдет вам много статей о том, почему).
F-ES Sitecore
Используйте отладчик, чтобы увидеть, что находится в "sql", есть ли там что-то неправильное. Как было предложено, вы должны использовать параметризованные запросы, поскольку это делает такие вещи намного проще и проще.
Edit: только что заметил, что у вас есть таблица под названием "регистрация клиента", если в ваших таблицах есть пробелы, вам нужно заключить их в квадратные скобки
вставить в [регистрация клиента]