0

在我正在处理的经典 ASP 站点中,我需要获取当前站点所有者的 ID,以便将 Excel 中的电子邮件列表导出给该用户。我在我的 SQL 行上收到主题中提到的错误。我尝试任何方式都无法获得ID。当我在数据库中输入一个与 ID 对应的数字时,数据就可以正常提取了。我不知道该怎么做才能完成WHERE ID =这项工作

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = " & rs("ID")
rs.Open SQL, conn, AdOpenStatic, AdLockPessimistic
If NOT rs.EOF then
    %>
        <textbox value="<% = rs("ID") %>"><% = rs("storeNumber") & " - " & rs("siteOwner") %></textbox>
    <%
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

我不太确定该怎么做,因为我通常不使用经典的 asp,而且这个网站是很久很久以前写的。

当我在 SQL Server 中使用该 SQL 语句并将 rs("ID") 替换为 '1' 时,该语句运行得很好。有人能帮助我吗?我找不到任何似乎有帮助的东西。

更新的 SQL 到

    SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = ?

但现在我有错误

[Microsoft][ODBC SQL Server Driver]COUNT field incorrect or syntax error

在第 19 行,即

rs.Open SQL, conn, AdOpenStatic, AdLockPessimistic
4

1 回答 1

5

这些行不起作用:

Set rs = Server.CreateObject("ADODB.RecordSet") 
SQL = "SELECT ID, storeNumber, siteOwner FROM OrderOwners WHERE ID = " & rs("ID") 

这些行失败了,因为您只是通过在其上方的行中rs("ID")进行设置而将其清除rs

您需要将尝试检索信息的 ID 传递给 SQL 查询。如果这是一个公共站点,请小心,就像您通过查询字符串传递 ID 一样,您可能容易受到 SQL 注入攻击。

于 2012-10-04T19:28:17.647 回答