我真的不喜歡用傳統的ASP工作,但我不得不...經典ASP形式給SQL Server的轉換失敗「%%」爲int數據類型
我有這樣的形式:
<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
或者將它傳遞給一個會話,但無濟於事。任何幫助,將不勝感激。
我的主要觀點是你需要在你的查詢中使用「like」而不是「=」。如果是面向公衆的網站,我會擔心SQL注入。最好的防禦措施是在收集表單和查詢字符串變量時使用範圍保護,您應該能夠在Google上找到大量有關如何執行此操作的內容。 Querystrings特別容易受到攻擊,那裏有很多ASPROX類型的惡意軟件,它們的目標是包含「.asp?」的URL – John