asp调用sql server带参数的分页存储过程

ASP   2025-01-18 11:34   63   0  
<%Response.ContentType = "text/html; charset=utf-8"%>
<%
create PROC fenyecunchu
@Page INT=1,     '请求的页数(第几页)
@RowNum INT=5    '请求的每页显示数量
AS
BEGIN
SELECT * FROM
(Select *,ROW_NUMBER() OVER(ORDER BY ID) AS num FROM shi.dbo.News) a
WHERE a.num BETWEEN(@Page-1)*@RowNum+1 AND (@Page)*@RowNum
END

' 创建连接字符串
Const strConnectionString = "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=ceshi;User ID=sa;Password=123456;"
' 创建ADODB.Connection对象
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
' 打开连接
objConn.Open strConnectionString
' 创建ADODB.Command对象
Dim objCmd
Set objCmd = Server.CreateObject("ADODB.Command")
' 设置Command对象的属性
With objCmd
    .ActiveConnection = objConn    ' 关联到连接对象
    '.CommandType = adCmdStoredProc ' 指定命令类型为存储过程
.CommandType = 4 ' 指定命令类型为存储过程
    .CommandText = "fenyecunchu" ' 设置存储过程名称
    ' 添加参数(如果有)
    '.Parameters.Append .CreateParameter("@Count", adVarChar, adParamInput, 50, "参数值")
.Parameters.Append .CreateParameter("@Page", 3, 1, 50, 2)
.Parameters.Append .CreateParameter("@RowNum", 3, 1, 50, 10)
.Prepared = true '要求将SQL命令先预编译
End With

response.Write(objCmd.Parameters(1))

第1个方法读取数据:
Dim rs
Set rs = objCmd.Execute
Do While Not rs.EOF
response.Write(rs("Title"))
response.Write("<br/>")
rs.MoveNext
Loop

第2个方法读取数据:
Set rs= Server.CreateObject("ADODB.Recordset") '建立记录集对象
rs.CursorLocation = 3
rs.Open objCmd
Do While Not rs.EOF
	response.Write(rs("Title"))
	rs.MoveNext
Loop

' 清理对象
objCmd.ActiveConnection = Nothing
Set objCmd = Nothing
objConn.Close
Set objConn = Nothing
%>


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。