动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > ASP.NET实例 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

ASP.NET结合存储过程写的通用搜索分页程序


发表日期:2003-12-29


存储过程改自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

关注此文的读者还看过:
·2012-5-21 15:43:37 XML、DataSet、DataGrid结合写成广告管理程序(一)
·2012-5-21 15:36:02 [视频教程]新科海_asp.net会员系统开发视频教程5
·2012-5-21 15:22:14 在.NET 应用程序中用System.Web.Mail 发送电子邮件
·2012-5-21 15:06:57 C#+ASP.NET开发基于Web的RSS阅读器
·2012-5-21 15:03:46 基于asp.net的webmenu的数据操作2
·2012-5-21 15:03:43 ASP.NET中实时图表的实现
·2012-5-21 14:57:49 [视频教程]新科海_asp.net会员系统开发视频教程1
·2012-5-21 14:55:09 [视频教程]新科海_asp.net会员系统开发视频教程3
·2012-5-21 14:47:53 ASP.NET WEB服务和Flash打造MP3播放器
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
Asp.net源码推荐
·Xluo大型三层架构短消息系统 v1
·蓝白磁盘管理 v1.0
·起源网络搜索小说系统 v1.0 Beta
·M-Tear人力资源管理系统 v1.0
·DotWe论坛(原AspxBBS) v5.1 万能
·HIWEB政府网站管理系统 v2.2010
·餐饮网站、来电订餐配送系统
·七星彩(海南彩)虚拟下注擂台
·C#开的网站购物交易系统 v1.0
·网奇.NET网络商城系统 v4.1
·ZeroStock(零库存) v1.2.0
·iwms(原动网新闻.Net) v4.4 b12
项目外包信息
·汽车配件网站制作 50000元
·整站SEO优化
·课件门户网程序
·求长期合作网站设计制作高手
·公司网站重新改版 8000元
·asp企业网站小改动
·网站flash片头
·文化传播公司网站设计稿
·UI界面设计
·产品外观改版设计 15000元
·照明灯具网站设计 10000元
·求长期合作网站设计制作高手
·做B2C网站 20000元
·Android或QT软硬件平台设计(工
·网站首页FLASH
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<ASP.NET实例>的内容


网络编程文章分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
WordPress
Android开发
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索|酒店预订|机票预订
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号