1.数值型字段的处理
a.存储过程
CREATE PROCEDURE sp_Test(
@id varchar(1000)
) AS
declare @SQL nvarchar(2000)
set @SQL=N'Select * from book where id in(' + @id + ')' --生成SQL语句
EXEC sp_executesql @SQL
GO
b.ASP程序
<%
Dim ConnStr
Dim Cn,Cmd,Rs
Dim ID
if Request.form("Action")<>"" then
'取得用户提交的查询条件
ID=replace(request.form("select"),", ",",") '替换时不加单引号
'连接字符串
ConnStr="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=book;Data Source=(local)"
'建立Connection对象
Set Cn=Server.CreateObject("ADODB.Connection")
'连接数据库
Cn.Open ConnStr
'连接Command对象
Set Cmd=Server.CreateObject("ADODB.Command")
'设置Command对象的连接
Cmd.ActiveConnection=Cn
'设置命令类型为Stored Procedure
Cmd.CommandType=4
'指定存储过程名
Cmd.CommandText="sp_Test"
'设置存储过程参数
Cmd.Parameters.Append cmd.CreateParameter("@id",200,1,1000)
Cmd("@id")= ID '直接赋值给存储过程的参数
'执行存存储过程返回记录集
set Rs=Cmd.Execute
While Not Rs.Eof
Response.Write Rs("bookname") & " " & Rs("writer") & "<br>"
Rs.MoveNext
Wend
Rs.Close
Set Rs=Nothing
Set Cmd=Nothing
Cn.Close
Set Cn=Nothing
end if
%>
<form name="form1" method="post">
<select name="select" multiple>
<option value="217">---217---</option>
<option value="218">---218---</option>
<option value="3">---3---</option>
<option value="4">---4---</option>
<option value="5">---5---</option>
</select>
<input type="hidden" name="Action" value="提交">
<input type="submit" name="Submit" value="提交">
</form>
2.字符型字段处理
a.存储过程
CREATE PROCEDURE sp_Test2(
@writer varchar(1000)
) AS
declare @SQL nvarchar(2000)
set @SQL=N'Select * from book where writer in(' + @writer + ')' --生成SQL语句
EXEC sp_executesql @SQL
GO
b.ASP程序
<%
Dim ConnStr
Dim Cn,Cmd,Rs
Dim WRITER
if Request.form("Action")<>"" then
'取得用户提交的查询条件
WRITER=replace(request.form("select"),", ","','") '替换时加单引号
'连接字符串
ConnStr="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=book;Data Source=(local)"
'建立Connection对象
Set Cn=Server.CreateObject("ADODB.Connection")
'连接数据库
Cn.Open ConnStr
'连接Command对象
Set Cmd=Server.CreateObject("ADODB.Command")
'设置Command对象的连接
Cmd.ActiveConnection=Cn
'设置命令类型为Stored Procedure
Cmd.CommandType=4
'指定存储过程名
Cmd.CommandText="sp_Test2"
'设置存储过程参数
Cmd.Parameters.Append cmd.CreateParameter("@writer",200,1,1000)
Cmd("@writer")= "'" & WRITER & "'" '在两边再加上一个单引号,然后赋值给存储过程的参数
'执行存存储过程返回记录集
set Rs=Cmd.Execute
While Not Rs.Eof
Response.Write Rs("bookname") & " " & Rs("writer") & "<br>"
Rs.MoveNext
Wend
Rs.Close
Set Rs=Nothing
Set Cmd=Nothing
Cn.Close
Set Cn=Nothing
end if
%>
<form name="form1" method="post">
<select name="select" multiple>
<option value="席绢">---席绢---</option>
<option value="岑凯伦">---岑凯伦---</option>
<option value="3">---3---</option>
<option value="4">---4---</option>
<option value="5">---5---</option>
</select>
<input type="hidden" name="Action" value="提交">
<input type="submit" name="Submit" value="提交">
</form>
以上程序在Win2000 + IIS5 + SQL Server 2000下测试通过。
[此贴子已经被作者于2005-4-7 10:38:14编辑过]