【问题标题】:ASP.NET - MS-ACCESS - VB.NET - SQL STATEMENT ERRORASP.NET - MS-ACCESS - VB.NET - SQL 语句错误
【发布时间】:2012-03-25 14:09:53
【问题描述】:

谁能告诉我这段代码有什么问题?它在cmd.ExecuteNonQuery() 中给了我一个错误

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;")

    Dim cmd As OleDbCommand = New OleDbCommand("INSERT INTO [User] (CustomerName, CustomerSurname, Address, Country, TelNo, Username, Password, UserTypeID) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", conn)




    If txtPass.Text = txtCPass.Text Then

        conn.Open()


        cmd.Parameters.Add("@CustomerName", OleDbType.VarChar, 255).Value = txtName.Text
        cmd.Parameters.Add("@CustomerSurname", 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("@TelNo", OleDbType.Integer).Value = txtTelNo.Text
        cmd.Parameters.Add("@Username", OleDbType.VarChar, 255).Value = txtUsername.Text
        cmd.Parameters.Add("@Password", OleDbType.VarChar, 255).Value = txtPass.Text
        cmd.Parameters.Add("@UserTypeID", OleDbType.Integer, 255).Value = "1"





        cmd.ExecuteNonQuery()

        conn.Close()
        lblAccount.Visible = True



    End If

End Sub

结束类

【问题讨论】:

  • 它告诉我“INSERT INTO”语句中有错误。但我之前尝试过,它正在工作。我所做的只是在 db 中更改列的名称,然后在 asp.net 中更改
  • 你能手动运行命令吗?是否存在约束问题或必须唯一的列。
  • 有一个'UserID',它是通过 ms-access db 自动编号的

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


【解决方案1】:

编辑:username 和 password 可能是 reserved keywords in Access。

尝试用括号括起来:

 ..., TelNo, [Username], [Password], ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多