试图将更新写回ASP中的SQL-在'=';
说到经典ASP,我有点生疏,所以我提前道歉 我有一个asp页面,里面有一张表格,上面填写了pc设备的详细信息。然后将其添加到SQL数据库中。工作有魅力 然而,在查看页面上,我们可以在其中更改任何详细信息,当我单击“保存更改”按钮时,我得到一个错误 “=”附近的语法不正确 以下是我所拥有的:试图将更新写回ASP中的SQL-在'=';,sql,sql-server,asp-classic,Sql,Sql Server,Asp Classic,说到经典ASP,我有点生疏,所以我提前道歉 我有一个asp页面,里面有一张表格,上面填写了pc设备的详细信息。然后将其添加到SQL数据库中。工作有魅力 然而,在查看页面上,我们可以在其中更改任何详细信息,当我单击“保存更改”按钮时,我得到一个错误 “=”附近的语法不正确 以下是我所拥有的: <!-- #include file="Tauthenticate.asp" --> <!--#include file="database.asp"
<!-- #include file="Tauthenticate.asp" -->
<!--#include file="database.asp"-->
<%
pcname=request.form("T1")
pctype=request.form("T2")
pccpu=request.form("T3")
pcram=request.form("T4")
pcmake=request.form("T5")
pcmodel=request.form("T5b")
pcdate=request.form("T6")
graphics=request.form("T7")
notes=request.form("T8")
tag=request.form("T9")
cd_dvd=request.form("T10")
sqlq = "UPDATE PC set PC_Name='" & pcname & "', Type='" & pctype & "', CPU='" & pccpu & "', RAM='" & pcram & "', Make='" & pcmake & "', Model='" & pcmodel & "', Date='" & pcdate & "', Graphics='" & graphics & "', Notes='" & notes & "', Service_Tag='" & tag & "', CD_DVD='" & cd_dvd & "' where PC_ID=" & pcid
response.write(sqlq)
conn.execute(sqlq)
Response.Redirect("../PCs/PCView.asp?pc=" & pcid)
%>
经过快速测试,我得到了这个结果
更新PC套件PC_-Name='LRW9999',Type='Desktop PC',CPU='blah blah',RAM='5555',Make='blah blah',Model='doo doo',Date='09/02/16',Graphics='blah blah',Notes='test only',Service_Tag='gyudsgysdgsgghfs',CD_DVD='9999',PC ID在哪里=
SQL Server的Microsoft OLE DB提供程序错误“80040e14”
“=”附近的语法不正确
/PCs/SaveChangesnew.asp,第28行
我哪里做错了?似乎我看不见树木,我需要新鲜的眼睛来帮助我。将您的sqlquery更新为以下内容:
sqlq = "UPDATE PC set PC_Name='" & pcname & "', Type='" & pctype & "', CPU='" & pccpu & "', RAM='" & pcram & "', Make='" & pcmake & "', Model='" & pcmodel & "', Date='" & pcdate & "', Graphics='" & graphics & "', Notes='" & notes & "', Service_Tag='" & tag & "', CD_DVD='" & cd_dvd & "' where PC_ID='" & pcid &"'"
pcid
为空。你从来没有分配过如何解释问题?这不是一个解决方案,PC\u ID
字段很可能是一个INT
试图显式将其转换为VARCHAR
只会导致错误。问题是OP没有将任何内容分配给pcid
as。@RicardoPontual True,我确实说过它会出错……仔细想想,它可能无法确定是否将空的VARCHAR
传递给INT
字段,在我的头顶上会发生什么。但无论哪种方法,都不是解决问题的方法,只需为pcid
传递一个值,或者先检查它,如果不存在更新,则不运行更新,等等。