![](/img/trans.png)
[英]Arithmetic overflow error converting varchar to data type numeric - SQL Server
[英]Classic ASP form giving SQL Server Conversion failed when converting the varchar value '%%' to data type int
我真的不喜欢使用经典的ASP,但是我必须...
我有这个表格:
<form name="QRForm" id="frm" method="post" action="qry.asp">
<input name="orderno" type="int" value="<%=Order_id%>">
<input name="" type="submit" value="Go To Next Step" />
</form>
和qry.asp
这段代码来处理订单ID
<%Set MySQLConn = Server.CreateObject("ADODB.Connection")
MySQLConn.Open "driver={SQL Server};server=..."
GetOrder = "SELECT * FROM Jobs WHERE JobID='%" & Order_id &"%';"
Set ShowOrder = MySQLConn.execute(GetOrder)
if ShowOrder.EOF then%>
<div class="initiatives">
<p>No such record</p>
</div>
<%else
Do While Not ShowOrder.EOF%>
<div class="initiatives">
<p><span><%=ShowOrder("JobID")%></span><br />
<%=(ShowOrder("Payments"))%></p>
</div>
<%ShowOrder.Movenext
Loop
end if%>
我做错了什么还是需要将Order_Id
转换为整数? 如果可以,怎么办? 我尝试过cast
convert
和convert
或通过会话传递它,但无济于事。 任何帮助,将不胜感激。
这是=符号,这是错误的。 如果您使用通配符(%),则SQL语法为
SELECT * FROM Jobs WHERE JobID like '%YourValue%'.
我注意到您使用的是ODBC连接字符串,该字符串应该可以工作,但对于SQL Server,通常认为Native Client或OLEDB是更好的选择-请参见下面的链接
我实际上是通过使用
<% Dim OrderId
OrderId =Request("Order")%>
......
GetOrder = "SELECT * FROM Jobs WHERE JobID like'"+OrderId+"'"
注意:这种方式可能会使代码易于注入代码。 这是我知道的-但不在乎-
我认为您的代码应该也能正常工作John。 我只是无法在我的项目中使用它(它返回null)。 谢谢你不管
您提到的有关连接字符串的内容也非常有趣。 这段代码实际上是我对一个较旧的站点所做的某些修改的一部分,可能会使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.