从vb.net将值插入Access数据库

时间:2014-07-09 01:03:31

标签: vb.net ms-access sql-insert

尝试将值插入访问数据库时出错。错误说:

未处理的类型' System.Data.OleDb.OleDbException'发生在System.Data.dll中。附加信息:INSERT INTO语句中的语法错误。

所有值类型都是我的Access数据库中的文本。

这是我的代码:

感谢。

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 个答案:

答案 0 :(得分: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 Access关键字。 [tablename]相当于其他RDBMS上的反引号。它用作表名的转义关键字。