' p'附近的语法不正确

时间:2016-10-10 23:39:45

标签: asp.net sql-server

错误:

*Microsoft OLE DB Provider for SQL Server error '80040e14'
Incorrect syntax near 'p'.
/TEST/order.asp, line 105*

第105行:

*Set rs = conn.Execute("INSERT INTO orders (OrderNumber,Items,DateT,Valuex,Name,Address,Email,Instructions,Terms,CountryFlag,Newsletter) VALUES  ('"&OrderNumber&"','"&Items&"','"&DateT&"','"&Valuex&"','"&Name&"','"&Address&"','"&Email&"','"&Instructions&"','"&Terms&"','"&CountryFlag&"','"&Newsletter&"')")*

这在我们当前的网站上完全正常,但不适用于重新制作的版本。我假设它在前一页中出现错误,其中会话变量必须搞砸了?

1 个答案:

答案 0 :(得分:0)

如果将其转换为存储过程,这将是最简单的。

但是对于您当前的情况,可能更容易创建命令对象并将值解析为参数。

        Dim sqlstring As String = "INSERT INTO orders (OrderNumber, Items, DateT, Valuex, Name, Address, Email, Instructions, Terms, CountryFlag, Newsletter) " _
    + "VALUES('@OrderNumber', '@Items', '@DateT', '@Valuex', '@Name', '@Address', '@Email', '@Instructions', @Terms', '@CountryFlag', '@Newsletter')"

    Dim comm As New SqlCommand(sqlstring, conn)
    comm.Parameters.Add(New SqlParameter("@OrderNumber", OrderNumber))
    comm.Parameters.Add(New SqlParameter("@Items", Items))
    comm.Parameters.Add(New SqlParameter("@DateT", DateT))
    comm.Parameters.Add(New SqlParameter("@Valuex", Valuex))
    comm.Parameters.Add(New SqlParameter("@Name", Name))
    comm.Parameters.Add(New SqlParameter("@Address", Address))
    comm.Parameters.Add(New SqlParameter("@Email", Email))
    comm.Parameters.Add(New SqlParameter("@Instructions", Instructions))
    comm.Parameters.Add(New SqlParameter("@Terms", Terms))
    comm.Parameters.Add(New SqlParameter("@CountryFlag", CountryFlag))
    comm.Parameters.Add(New SqlParameter("@Newsletter", Newsletter))

    conn.Execute()