Vbscript 添加到购物车问题(我缺少什么)

Vbscript 添加到购物车问题(我缺少什么),vbscript,asp-classic,Vbscript,Asp Classic,代码中缺少什么? 有什么建议吗 错误显示如下:- Error Type: Microsoft JET Database Engine (0x80040E14) Syntax error (missing operator) in query expression 'orderID =1AND productID ='. /mcartfree/addToCart.asp, line 49 代码到目前为止 'Main program Sub CreateNewOrder() Appli

代码中缺少什么? 有什么建议吗

错误显示如下:-

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'orderID =1AND productID ='.
/mcartfree/addToCart.asp, line 49
代码到目前为止

'Main program 
 Sub CreateNewOrder()
    Application.lock
    if Application("orderID") = "" then
        Application("orderID") = 1
    end if


   intOrderID = Application("orderID")
   Session("orderID") = intOrderID
   Conn.Execute("INSERT INTO orders " _
    & " (orderID, status) values " _
    & " ("&intOrderID&", 'OPEN')")

    Application("orderID") = Application("orderID") + 1
   Application.Unlock
End Sub

Sub AddToOrder(nOrderID, nProductID, nQuant)
    sqlText = "INSERT INTO itemsOrdered " _
        & " (orderID, productID, quantity) values " _ 
        & " ("&nOrderID&", "&nProductID&", "&nQuant&")"
    Conn.Execute(sqlText)

End Sub


'Main program 
intProdID = Request.form("intProdID")
intQuant = Request.form("intQuant")

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConString

intOrderID = cstr(Session("orderID"))
if intOrderID = "" then
   CreateNewOrder
end if

sqlText = "SELECT * FROM itemsOrdered WHERE orderID =" & intOrderID & "AND productID =" & intProdID
set rsOrder = Conn.Execute(sqlText)

if rsOrder.EOF then
    txtInfo = "This item has been added to your order."  
    AddToOrder intOrderID, intProdID, intQuant
else
    txtInfo = "This item is already in your cart."
end if
新错误

Error Type:
Microsoft JET Database Engine (0x80004005)
Operation must use an updateable query.
/mcartfree/addToCart.asp, line 19
现在又出现了新的错误

Error Type:
Microsoft JET Database Engine (0x80004005)
Operation must use an updateable query.
/mcartfree/addToCart.asp, line 31

您可能缺少空格
orderID=1和productID=
,而不是
orderID=1和productID=

I您的案例系统找不到
运算符,因为它在
orderId
字段的类似查询的值
1和
中表示

使用以下内容更新您的查询:

sqlText = "SELECT * FROM itemsOrdered WHERE orderID = " & intOrderID & " AND productID = " & intProdID
set rsOrder = Conn.Execute(sqlText)
                                                     ^                  ^               ^
                                                 whitespace         whitespace!!!   whitespace

您可能缺少空格
orderID=1和productID=
,而不是
orderID=1和productID=

I您的案例系统找不到
运算符,因为它在
orderId
字段的类似查询的值
1和
中表示

使用以下内容更新您的查询:

sqlText = "SELECT * FROM itemsOrdered WHERE orderID = " & intOrderID & " AND productID = " & intProdID
set rsOrder = Conn.Execute(sqlText)
                                                     ^                  ^               ^
                                                 whitespace         whitespace!!!   whitespace

写出SQL字符串并查看其是否正确:

sqlText = "SELECT * FROM itemsOrdered WHERE orderID = " & intOrderID & " AND productID = " & intProdID
' Debug sql...
Response.Write(sqlText)
Response.End()
' Just debuging the SQL statement....

set rsOrder = Conn.Execute(sqlText)

写出SQL字符串并查看其是否正确:

sqlText = "SELECT * FROM itemsOrdered WHERE orderID = " & intOrderID & " AND productID = " & intProdID
' Debug sql...
Response.Write(sqlText)
Response.End()
' Just debuging the SQL statement....

set rsOrder = Conn.Execute(sqlText)

你可能想给我们看一些代码,不是吗?@Carsten König:)我无法编辑问题sqlText=“SELECT*FROM itemsOrdered WHERE orderID=“&intOrderID&”和productID=“&intProdID set rsOrder=Conn.Execute(sqlText)@Carsten König:)问题,但没有编辑整个代码1。。。尝试使用存储过程。如果您无法将代码更改为参数化SQL语句,您可能希望向我们展示一些代码,不是吗?@Carsten König:)我无法编辑问题sqlText=“SELECT*FROM itemsOrdered WHERE orderID=“&intOrderID&”和productID=“&intProdID set rsOrder=Conn.Execute(sqlText)@Carsten König:)问题已编辑,但不是整个代码1。。。尝试使用存储过程。如果无法将代码更改为参数化SQL语句错误类型:查询表达式“orderID=1和productID=”中的Microsoft JET数据库引擎(0x80040E14)语法错误(缺少运算符)/mcartfree/addToCart.asp,第49行尝试格式化
sqlText
变量,如果可能的话,在这里发布。像
Response.Write(sqlText
)和comment
set rsOrder=Conn.Execute(sqlText)这样的东西
Oops!无法提交您的编辑,因为:您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的场景。对于上次发布的错误,请签出此:。这可能是两个原因。以及您的
Internet来宾帐户(IUSR\U计算机)
是否具有写入权限?错误类型:Microsoft JET数据库引擎(0x80040E14)在查询表达式“orderID=1和productID=”中出现语法错误(缺少运算符)。/mcartfree/addToCart.asp,第49行尝试格式化
sqlText
变量,如果可能,请在此处发布。类似
Response.write的内容(sqlText
。和comment
set rsOrder=Conn.Execute(sqlText)
Oops!无法提交您的编辑,因为:您的帖子没有太多上下文来解释代码部分;请更清楚地解释您的场景。对于上一次发布的错误签出:。可能有两个原因。以及您的
Internet来宾帐户(IUSR_机器)
有写权限吗?哪一行是31?是运行的AddToOrder方法吗?如果您像上面的代码那样编写SQL语句会发生什么?您有更新/插入Access数据库的权限吗?哪一行是31?是运行的AddToOrder方法吗?如果您像上面的代码那样编写SQL语句会发生什么?您是否是否拥有更新/插入Access数据库的权限?