2016-03-08 1 views
0

pls m'aider à résoudre cette question .. im très nouveau à ce je ne peux pas ajouter un nouvel employé à l'employé de la table .. chaque fois que j'essaie d'ajouter il montre l'erreur de syntaxe insérer dans l'instructionerreur de syntaxe insérer dans l'instruction 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

quelle ligne vous donne une erreur? – Matriac

+0

[Votre code est vulnérable à l'injection SQL] (http://bobby-tables.com/). N'utilisez pas de concaténation de chaîne, utilisez plutôt des instructions Parameterized. – Spidey

Répondre

0

Remplacer cette,

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 & "')" 

avec cela,

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 & "')" 

Merci Manoj

+0

Essayez de ne pas utiliser d'espaces entre le nom de la colonne. Au lieu de "Employee Name", écrivez "EmployeeName" comme nom de colonne – Manoj