Синтаксическая ошибка при вставке в таблицу пользователей в MS Access 2003 - PullRequest
1 голос
/ 24 марта 2012

Используя VB.NET с ASP.NET и данными ms-access 2003, я пытаюсь ввести данные из веб-формы в таблицу в db.mdb с именем «USER».

Iпопробовал этот код:

 Protected Sub btnCreateAccount_Click(sender As Object, e As System.EventArgs) Handles btnCreateAccount.Click

    Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Brian\Documents\Visual Studio 2010\WebSites\WebSite3\db.mdb;User Id=admin;Password=;")

    Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO USER (Name, Surname, Username, Country, TelNo, Password, Address) VALUES (?, ?, ?, ?, ?, ?, ?)", conn)

    If txtPass.Text = txtCPass.Text Then

        cmd.Parameters.Add("@Name", OleDbType.VarChar, 255).Value = txtName.Text
        cmd.Parameters.Add("@Surame", OleDbType.VarChar, 255).Value = txtSurname.Text
        cmd.Parameters.Add("@Address", OleDbType.VarChar, 255).Value = txtAddress.Text
        cmd.Parameters.Add("@Country", OleDbType.VarChar, 255).Value = txtCountry.Text
        cmd.Parameters.Add("@Username", OleDbType.VarChar, 255).Value = txtUsername.Text
        cmd.Parameters.Add("@Password", OleDbType.VarChar, 255).Value = txtPass.Text
        cmd.Parameters.Add("@TelNo", OleDbType.Integer).Value = txtTelNo.Text

        Try

            conn.Open()
            cmd.ExecuteNonQuery()
            conn.Close()

        Catch ex As OdbcException
            Throw ex
        Finally
            conn.Close()
            lblAccount.Visible = True


        End Try

    End If

End Sub

Но он возвращает мне сообщение об ошибке:

enter image description here

Любые предложения о том, почему проблема может быть причиной?

1 Ответ

3 голосов
/ 24 марта 2012

User и Password являются зарезервированными ключевыми словами. Измените имена или используйте квадратные скобки вокруг имен в запросе:

    Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO [USER] (Name, Surname, Username, Country, TelNo, [Password], Address) VALUES (?, ?, ?, ?, ?, ?, ?)", conn)

Затем для следующей ошибки, с которой вы столкнетесь: поскольку параметры не названы в запросе, объекты параметров в коллекции Parameters должны быть добавлены в том же порядке, в котором они используются в запросе.

...