2014-07-09 2 views
-1

값을 액세스 데이터베이스에 삽입하려고 할 때 오류가 발생합니다. 오류 메시지 :vb.net에서 Access db에 값을 입력하십시오.

System.Data.dll에서 'System.Data.OleDb.OleDbException'형식의 처리되지 않은 예외가 발생했습니다. 추가 정보 : INSERT INTO 문에 구문 오류가 있습니다.

모든 값 유형은 내 Access db의 텍스트입니다.

여기 내 코드 :

감사합니다. 테이블 이름이 캡슐화되고있다 위해

Public Class NewUser 
Dim cnn2 As New OleDb.OleDbConnection 

Private Sub NewUser_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    cnn2 = New OleDb.OleDbConnection 
    cnn2.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Chris\Desktop\UserInfo.accdb" 
    frmMain.Visible = True 
    Me.Visible = False 
End Sub 
Private Sub RefreshData() 
    If Not cnn2.State = ConnectionState.Open Then 
     cnn2.Open() 
    End If 
End Sub 
Private Sub btnCreate_Click(sender As System.Object, e As System.EventArgs) Handles btnCreate.Click 
    If (txtPassword.Text = txtConfirm.Text) Then 
     greenP.Visible = True 
     Dim cmd2 As New OleDb.OleDbCommand 
     If Not cnn2.State = ConnectionState.Open Then 
      cnn2.Open() 
     End If 

     cmd2.Connection = cnn2 
     cmd2.CommandText = "INSERT INTO Users (FirstName, LastName, Address, City, State, Zip, Email, Username, Password) VALUES ('" & txtFirst.Text & "', '" & txtLast.Text & "', '" & txtAddress.Text & "', '" & txtCity.Text & "', '" & txtState.Text & "', '" & txtZip.Text & "', '" & txtEmail.Text & "', '" & txtUsername.Text & "', '" & txtPassword.Text & "')" 

     cmd2.ExecuteNonQuery() 
     cnn2.Close() 

     txtAddress.Clear() 
     txtCity.Clear() 
     txtConfirm.Clear() 
     txtEmail.Clear() 
     txtFirst.Clear() 
     txtLast.Clear() 
     txtPassword.Clear() 
     txtState.Clear() 
     txtUsername.Clear() 
     txtZip.Clear() 
     txtFirst.Focus() 
    Else 
     redP.Visible = True 
     MessageBox.Show("Passwords do not match. Please enter again", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information) 
     txtConfirm.Clear() 
     txtConfirm.Focus() 
    End If 
End Sub 

최종 클래스

답변

1
cmd2.CommandText = "INSERT INTO Users (FirstName, LastName, Address, City, [State], Zip, Email, Username, [Password]) VALUES ('" & txtFirst.Text & "', '" & txtLast.Text & "', '" & txtAddress.Text & "', '" & txtCity.Text & "', '" & txtState.Text & "', '" & txtZip.Text & "', '" & txtEmail.Text & "', '" & txtUsername.Text & "', '" & txtPassword.Text & "')" 

것은 지금이 시도, 그 MS 액세스 키워드. [tablename]은 다른 RDBMS의 백틱과 동일합니다. 테이블 이름의 이스케이프 된 키워드로 사용됩니다.

+0

감사합니다. – danglesauce19

관련 문제