首页 | 源码下载 | 编程控件 | 书籍教程 | 应用方案 | 设计素材 | 项目交易 | 开发文档 | 商业源码 | 我的帐号
登陆我的帐号
帐 号:
密 码:
我还不是会员,需要注册!

截止2004年12月16日
本站源码总量(商业源码除外)RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,会员源码为 3,082,238 KB
C/C++ 129,555 KB
Delphi 1,258,381 KB
Java 120,937 KB
.Net 36,886 KB
PowerBuilder 954,525 KB
Visual Basic 923,454 KB
ASP 259,795 KB
JSP 4,987 KB
其他 94,723 KB

本站是中国频道、中资源、时代互联顶级代理:注册国际域名70元,国内域名130元,各类ASP、PHP、JSP空间8折优惠!
本站承担各类网站制作开发及方案策划,项目经验丰富,欢迎洽谈!

网站动态
关于下载速度慢的问题解答
想免费下载源码吗?
还有众多资源恭候大家免费…
道歉!
关于资源更新的说明
关于下载错误的原因!
源码资源网新版网站投入运…

当前位置:源码资源网首页 > 开发文档首页 > .Net >ASP.NET结合存储过程写的通用搜索分页程序

ASP.NET结合存储过程写的通用搜索分页程序
人气:13 文字大小:     作者:

存储过程改自bigeagle的论坛分页程序。请大家批判!:)
select.aspx


--------------------------------------------------------------------------------



<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">


protected void Page_Load Object sender, EventArgs e)
{
int intPageNo,intPageSize,intPageCount;
intPageSize = 25;
if  Request["CurrentPage"]==null)
{
intPageNo = 1;
}
else
{
intPageNo = Int32.Parse Request["CurrentPage"]);
}


SqlConnection mySqlConnection = new SqlConnection "server= local);Database=test;user id=sa;password=");
SqlCommand mySqlCommand = new SqlCommand "up_GetTopicList", mySqlConnection);
mySqlCommand.CommandType = CommandType.StoredProcedure;

SqlParameter workParm;

//搜索表字段,以","号分隔
workParm = mySqlCommand.Parameters.Add "@a_TableList", SqlDbType.VarChar, 200);
mySqlCommand.Parameters["@a_TableList"].Value = "OFFERID,type,offertime";

//搜索表名
workParm = mySqlCommand.Parameters.Add "@a_TableName", SqlDbType.VarChar, 30);
mySqlCommand.Parameters["@a_TableName"].Value = "offer";

//搜索条件,如"select * from aa where a=1 and b=2 and c=3"则条件为"where a=1 and b=2 and c=3"
workParm = mySqlCommand.Parameters.Add "@a_SelectWhere", SqlDbType.VarChar, 500);
mySqlCommand.Parameters["@a_SelectWhere"].Value = "where type=’idl’";

//表主键字段名,必须为INT类型
workParm = mySqlCommand.Parameters.Add "@a_SelectOrderId", SqlDbType.VarChar, 50);
mySqlCommand.Parameters["@a_SelectOrderId"].Value = "offerid";

//排序,可以使用多字段排序但主键字段必需在最前面
workParm = mySqlCommand.Parameters.Add "@a_SelectOrder", SqlDbType.VarChar, 50);
mySqlCommand.Parameters["@a_SelectOrder"].Value = "order by offerid desc";

//页号
workParm = mySqlCommand.Parameters.Add "@a_intPageNo", SqlDbType.Int);
mySqlCommand.Parameters["@a_intPageNo"].Value = intPageNo;

//每页显示数
workParm = mySqlCommand.Parameters.Add "@a_intPageSize", SqlDbType.Int);
mySqlCommand.Parameters["@a_intPageSize"].Value = intPageSize;

//总记录数 存储过程输出参数)
workParm = mySqlCommand.Parameters.Add "@RecordCount", SqlDbType.Int);
workParm.Direction = ParameterDirection.Output;

//当前页记录数 存储过程返回值)
workParm = mySqlCommand.Parameters.Add "RowCount", SqlDbType.Int);
workParm.Direction = ParameterDirection.ReturnValue;


mySqlConnection.Open );
Repeater.DataSource = mySqlCommand.ExecuteReader );

Repeater.DataBind );

mySqlConnection.Close );

Int32 RecordCount =  Int32)mySqlCommand.Parameters["@RecordCount"].Value;
Int32 RowCount =  Int32)mySqlCommand.Parameters["RowCount"].Value;

LabelRecord.Text = RecordCount.ToString );
LabelRow.Text = intPageNo.ToString );
intPageCount = RecordCount/intPageSize;
if   RecordCount%intPageSize)>0)
intPageCount += 1;
LabelPage.Text = intPageCount.ToString );

if  intPageNo>1)
{
HLFistPage.NavigateUrl = "select.aspx?CurrentPage=1";
HLPrevPage.NavigateUrl = String.Concat "select.aspx?CurrentPage=","",intPageNo-1);
}
else
{
HLFistPage.NavigateUrl = "";
HLPrevPage.NavigateUrl = "";
//HLFistPage.Enabled = false;
//HLPrevPage.Enabled = false;
}

if  intPageNo<intPageCount)
{
HLNextPage.NavigateUrl = String.Concat "select.aspx?CurrentPage=","",intPageNo+1);
HLEndPage.NavigateUrl = String.Concat "select.aspx?CurrentPage=","",intPageCount);
}
else
{
HLNextPage.NavigateUrl = "";
HLEndPage.NavigateUrl = "";
//HLNextPage.Enabled=false;
//HLEndPage.Enabled=false;
}

}


</script>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<head>
<link href="/style.css" rel="stylesheet" />
<style type="text/css">
.high { font-family: "宋体"; font-size: 9pt; line-height: 140%}
.mid { font-size: 9pt; line-height: 12pt}
.small { font-size: 9pt; line-height: normal}
.TP10_5 {
font-size: 14px;
line-height: 140%;
}
</style>
<style type="text/css">A:link {
COLOR: #cc6666
}
</style>
</head>
<body>
<form runat="server">
<span class="high"> 第<font color="#CC0000"><asp:Label id="LabelRow" runat="server"/></font>页 | 共有<asp:Label id="LabelPage" runat="server"/>页
| <asp:Label id="LabelRecord" runat="server"/>条信息 |
<asp:HyperLink id="HLFistPage" Text="首页" runat="server"/>
| <asp:HyperLink id="HLPrevPage" Text="上一页" runat="server"/>
| <asp:HyperLink id="HLNextPage" Text="下一页" runat="server"/>
| <asp:HyperLink id="HLEndPage" Text="尾页" runat="server"/></span><br>

<asp:Repeater id=Repeater runat="server">


<HeaderTemplate>


<table width="583" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#000000"><table width="100%" border="0" cellpadding="4" cellspacing="1" class="TP10_5">
<tr bgcolor="#999999">
<td align="center"> <strong><font color="#FFFFFF">订单号</font></strong></td>
<td align="center"> <strong><font color="#FFFFFF">服务项目</font></strong></td>
<td align="center"> <strong><font color="#FFFFFF">预订日期</font></strong></td>
<td align="center"> <strong><font color="#FFFFFF">操作人员</font></strong></td>
<td align="center"> <strong><font color="#FFFFFF">分配状态</font></strong></td>
<td> <div align="center"></div></td>
</tr>
</HeaderTemplate>


<ItemTemplate>


<tr align="center" bgcolor="#FFFFFF" class="small" onMouseOver=’this.style.background="#CCCCCC"’ onMouseOut=’this.style.background="#FFFFFF"’>
<td><%# DataBinder.Eval Container.DataItem, "offerid") %></td>
<td><%# DataBinder.Eval Container.DataItem, "type") %></td>
<td><%# DataBinder.Eval Container.DataItem, "offertime") %></td>
<td> </td>
<td> </td>
<td><a href="javascript:void window.open ’info.asp?id=<%# DataBinder.Eval Container.DataItem, "offerid") %>’,’订单分配’,’height=600,width=1000’))">订单详情</a></td>
</tr>


</ItemTemplate>


<FooterTemplate>


</table></td>
</tr>
</table>


</FooterTemplate>


</asp:Repeater>


</form>
</body>
</html>



--------------------------------------------------------------------------------


up_GetTopicList.sql


--------------------------------------------------------------------------------



CREATE proc up_GetTopicList
@a_TableList Varchar 200),
@a_TableName Varchar 30),
@a_SelectWhere Varchar 500),
@a_SelectOrderId Varchar 20),
@a_SelectOrder Varchar 50),
@a_intPageNo int,
@a_intPageSize int,
@RecordCount int OUTPUT
as
/*定义局部变量*/
declare @intBeginID int
declare @intEndID int
declare @intRootRecordCount int
declare @intRowCount int
declare @TmpSelect NVarchar 600)
/*关闭计数*/
set nocount on

/*求总共根贴数*/


select @TmpSelect = ’set nocount on;select @SPintRootRecordCount = count *) from ’+@a_TableName+’ ’+@a_SelectWhere
execute sp_executesql
@TmpSelect,
N’@SPintRootRecordCount int OUTPUT’,
@SPintRootRecordCount=@intRootRecordCount OUTPUT


select @RecordCount = @intRootRecordCount


if  @intRootRecordCount = 0) --如果没有贴子,则返回零
return 0

/*判断页数是否正确*/
if  @a_intPageNo - 1) * @a_intPageSize > @intRootRecordCount
return  -1)


/*求开始rootID*/
set @intRowCount =  @a_intPageNo - 1) * @a_intPageSize + 1
/*限制条数*/


select @TmpSelect = ’set nocount on;set rowcount @SPintRowCount;select @SPintBeginID = ’+@a_SelectOrderId+’ from ’+@a_TableName+’ ’+@a_SelectWhere+’ ’+@a_SelectOrder
execute sp_executesql
@TmpSelect,
N’@SPintRowCount int,@SPintBeginID int OUTPUT’,
@SPintRowCount=@intRowCount,@SPintBeginID=@intBeginID OUTPUT


/*结束rootID*/
set @intRowCount = @a_intPageNo * @a_intPageSize
/*限制条数*/


select @TmpSelect = ’set nocount on;set rowcount @SPintRowCount;select @SPintEndID = ’+@a_SelectOrderId+’ from ’+@a_TableName+’ ’+@a_SelectWhere+’ ’+@a_SelectOrder
execute sp_executesql
@TmpSelect,
N’@SPintRowCount int,@SPintEndID int OUTPUT’,
@SPintRowCount=@intRowCount,@SPintEndID=@intEndID OUTPUT


if @a_SelectWhere=’’ or @a_SelectWhere IS NULL
select @TmpSelect = ’set nocount off;set rowcount 0;select ’+@a_TableList+’ from ’+@a_TableName+’ where ’+@a_SelectOrderId+’ between ’
else
select @TmpSelect = ’set nocount off;set rowcount 0;select ’+@a_TableList+’ from ’+@a_TableName+’ ’+@a_SelectWhere+’ and ’+@a_SelectOrderId+’ between ’


if @intEndID > @intBeginID
select @TmpSelect = @TmpSelect+’@SPintBeginID and @SPintEndID’+’ ’+@a_SelectOrder
else
select @TmpSelect = @TmpSelect+’@SPintEndID and @SPintBeginID’+’ ’+@a_SelectOrder


execute sp_executesql
@TmpSelect,
N’@SPintEndID int,@SPintBeginID int’,
@SPintEndID=@intEndID,@SPintBeginID=@intBeginID


return @@rowcount)
--select @@rowcount
GO




 

文章出处:   发表时间:2004-11-22 22:25:55

1条数据记录,分1页显示 上一页 < [1] > 下一页
相关文章  
[源码下载] · comicq源代码
[书籍教程] · VC++ 6.0数据库系统开发实例导航
[书籍教程] · Delphi 7数据库编程学习捷径
[书籍教程] · Delphi百例精解
[书籍教程] · DELPHI综合开发文档

相关评论  
 当前没有评论!
请登陆后再来发表评论!
当前位置:源码资源网首页 > 开发文档首页 > ASP.NET结合存储过程写的通用搜索分页程序
会员升级 | 广告服务 | 网站开发 | 联系我们 | 网站动态 | 客户反馈

CodeRes.com 保留所有权利 2004
本站所有资源仅供学习参考,版权归原作者所有,如侵犯了您的权益请与我们联系