Asp.net 在MySQL中插入查询错误

Asp.net 在MySQL中插入查询错误,asp.net,vb.net,Asp.net,Vb.net,我已经创建了一个函数。当用户单击按钮时,数据将自动插入订单表。但它总是给我错误。我使用的方式做我的注册页面工作良好 错误消息: MySql.Data.dll中发生“MySql.Data.MySqlClient.MySqlException”类型的异常,但未在用户代码中处理 附加信息:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行使用“订单(UserId、OrderStatus、OrderDate)值('kit'、'Pending'、'2014-12-08 22:4

我已经创建了一个函数。当用户单击按钮时,数据将自动插入订单表。但它总是给我错误。我使用的方式做我的注册页面工作良好

错误消息: MySql.Data.dll中发生“MySql.Data.MySqlClient.MySqlException”类型的异常,但未在用户代码中处理 附加信息:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行使用“订单(UserId、OrderStatus、OrderDate)值('kit'、'Pending'、'2014-12-08 22:4'附近的正确语法

  If Session("OrderId") Is Nothing Then
        Dim conn As New MySqlConnection
        conn.ConnectionString = "server = localhost; user id = root; password = root; database = db_fyp"
        Dim com As New MySqlCommand

        conn.Open()
        Dim query As String

        query = "insert into order(UserId, OrderStatus, OrderDate) values (@UserId, @OrderStatus, @OrderDate)"

        com = New MySqlCommand(query, conn)

        com.Parameters.AddWithValue("@UserId", Session("Username"))
        com.Parameters.AddWithValue("@OrderStatus", "Pending")
        com.Parameters.AddWithValue("@OrderDate", Now())

        com.ExecuteNonQuery()

        conn.Close()
    End If

    Return Nothing
End Function

Order在任何已知的SQL语言中都是一个保留关键字。我真的建议将该表名更改为问题较少的名称。同时,您可以将查询更改为

query = "insert into `order` (UserId, OrderStatus, OrderDate) " & _
        "values (@UserId, @OrderStatus, @OrderDate)"

不确定,但Order是SQL中的一个关键字。请尝试在该表名称周围添加背景符号。将插入到
Order
(UserId,OrderStatus,OrderDate)值(@UserId,@OrderStatus,@OrderDate)确认!Order是Mysql中的一个保留字:所有保留字都可以在这里找到:嗯,没有办法在评论中添加backstick?谢谢!!!我已经发现了一整天的错误。只是好奇,在MS-SQL中你可以使用方括号
[objectname]
区分数据库对象和关键字。这是MS特有的还是ANSI标准的一部分?我真的不知道。我一直认为这是每个数据库系统在您和您的数据库独立代码之间设置的障碍。我和您一样好奇,但我没有足够的时间研究不同的SQL标准