2016-03-08 4 views
0

PLS помогите решить мне этот вопрос .. im очень новичок в этом Я не могу добавить нового сотрудника в сотрудника таблицы .. всякий раз, когда я пытаюсь его добавить, отображается синтаксическая ошибка insert into statementОшибка синтаксиса вставить в утверждение vb.net

Public Class AddNewEmployee 

    Dim dr As OleDbDataReader 
    Dim da As OleDbDataAdapter 
    Dim ds As DataSet 
    Dim conn As New OleDbConnection(My.Settings.rayshadatabaseConnectionString) 
    Dim cmd As OleDbCommand 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

     conn.Open() 
     Try 
      Dim str As String = "INSERT INTO employee" _ 
      & "(Employee Name, IC Number, HP Number, Address)" _ 
      & " Values (" _ 
      & "'" & txtEmployeeName.Text & "', " _ 
      & "'" & txtIC_Number.Text & "'," _ 
      & "'" & txtHP_Number.Text & "'," _ 
      & "'" & txtAddress.Text & "')" 

      cmd = New OleDbCommand(str, conn) 
      Dim i As Integer = cmd.ExecuteNonQuery() 
      If i > 0 Then 
       MessageBox.Show("Record Succesfully added.", "Process Completed", MessageBoxButtons.OK, MessageBoxIcon.Information) 
      Else 
       MessageBox.Show("Adding failed!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 
      End If 
     Catch ex As Exception 
      MessageBox.Show(ex.Message) 
     Finally 
      conn.Close() 
      cmd.Dispose() 
     End Try 
     frmEmployee.loadR() 
     Me.Close() 
    End Sub 
End Class 
+0

какая строка дает вам ошибку? – Matriac

+0

[Ваш код уязвим для SQL-инъекций] (http://bobby-tables.com/). Не используйте конкатенацию строк, вместо этого используйте Parameterized statements. – Spidey

ответ

0

Заменить это,

Dim str As String = "INSERT INTO employee" _ 
    & "(Employee Name, IC Number, HP Number, Address)" _ 
    & " Values (" _ 
    & "'" & txtEmployeeName.Text & "', " _ 
    & "'" & txtIC_Number.Text & "'," _ 
    & "'" & txtHP_Number.Text & "'," _ 
    & "'" & txtAddress.Text & "')" 

с этим,

Dim str As String = "INSERT INTO employee" _ 
    & "([Employee Name], [IC Number], [HP Number], [Address])" _ 
    & " Values (" _ 
    & "'" & txtEmployeeName.Text & "', " _ 
    & "'" & txtIC_Number.Text & "'," _ 
    & "'" & txtHP_Number.Text & "'," _ 
    & "'" & txtAddress.Text & "')" 

Спасибо Manoj

+0

Старайтесь не использовать пробелы между именем столбца. Вместо «Employee Name» напишите «EmployeeName» в качестве имени столбца – Manoj

Смежные вопросы