如何将变量传递给ASP查询

时间:2012-09-25 04:56:24

标签: html asp-classic

我是一名ASP初学者,试图制作一个非常简单的页面。该功能是接受来自用户的两个输入,并根据下一页的报告显示报告。报告的数据在ASP页面上获取SQL查询。

这是我到目前为止所做的事情:

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=MSDAORA;
                       Data Source=şemam;
                       User Id=xyz;
                       Password=xyz;"
aranan = Request("aranan")

Set objRs = objConn.Execute("select * from my_department where user_id = <input from user>")
if objRs.BOF and objRs.eof then
  response.end
end if

我面临的问题是我无法找到如何在查询中正确传递用户输入。

请帮忙!

2 个答案:

答案 0 :(得分:2)

使用?作为占位符,然后将参数传递到Execute method

dim paramArray(0)
paramArray(0) = 123
Set objRs = objConn.Execute("select * from my_department where user_id = ?", paramArray)

答案 1 :(得分:1)

要将参数发送到数据库查询,您需要使用命令对象。

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=MSDAORA;" & _
             "Data Source=şemam;" & _
             "User Id=xyz;" & _
             "Password=xyz;"
aranan = Request("aranan")

Set objCmd = Server.CreateObject("ADODB.Command")
Set objCmd.ActiveConnection = objConn
objCmd.CommandText = "SELECT * FROM my_department WHERE user_id = ?"
objCmd.CommandType = 1

Set objRs = objCmd.Execute(, array(aranan))
if not objRs.EOF then
' Do whatever you need to with the result...
end if
objRs.Close
objConn.Close

在关闭连接之前不要结束响应,否则最终会耗尽连接池。