linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > ASP >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·由HTTP 500 Internal server e
·会员系统“找回密码”的制作方
·ASP实现数字和字母组合并生成图
·简单的asp验证码程序示例
·用ASP制作强大的搜索引擎
·如何让图片自动缩放以适合界面
·如何用foreach遍历页面上所有的
·如何实现站点的RSS输出
·无组件实现文件上传/下载
·ASP如何获取真实IP地址
·asp中如何使用 HTML 表格
·采用XMLHTTP编写一个天气预报的
·80004005错误及其解决方法
·asp中如何调试 ASP 脚本
·asp+ajax打造无刷新新闻评论系
最新文章
·ASP教程:8、ASP内建对象Respo
·ASP教程:7、ASP内建对象Reque
·ASP教程:6、ASP脚本循环语句
·ASP教程:5、ASP脚本变量、函数
·ASP教程:4、ASP脚本基础
·ASP教程:3、ASP基础
·ASP教程:2、ASP简介
·ASP教程:1、Are you ready?
·ASP中使用SQL语句教程
·ASP进度条
·由HTTP 500 Internal server e
·Asp无组件生成缩略图
·ASP 系列函数大全(4)
·ASP 系列函数大全(3)
·ASP 系列函数大全(2)
Google
 
客户端回调实现gridView无刷新分页
[ 作者:  加入时间:2007-11-30 13:31:04  来自:Linux联盟收集整理 ]
由于客户对速度和性能上的要求越来越变态,而数据量一天天的庞大,因此本人产生了数据的查询和分页完全由客户端回调来实现。想法看上去复杂,实现起来也不难。废话不多说,看程序吧。 5jELinux联盟
   5jELinux联盟
  一、存储过程 5jELinux联盟
   5jELinux联盟
  包头: 5jELinux联盟
   5jELinux联盟
  create or replace package H_QUERYPACK is 5jELinux联盟
   5jELinux联盟
   -- Author : Evorul 5jELinux联盟
   -- Created : 2007-3-29 5jELinux联盟
   -- Purpose : 查询机构表 5jELinux联盟
   5jELinux联盟
   -- Public type declarations 5jELinux联盟
   type MYCURSOR is REF CURSOR; 5jELinux联盟
   PROCEDURE QUERYLOG (RET_CURSOR OUT MYCURSOR,ERRORCODE OUT INT,p_logID int,p_StartTime Date,p_EndTime Date,p_Operator varchar2 ,p_OrderField varchar2 , 5jELinux联盟
   p_Desc int,p_PageSize Int,p_PageIndex Int,p_RecordCount Out Int); 5jELinux联盟
   5jELinux联盟
  end H_QUERYPACK; 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
  包体: 5jELinux联盟
   5jELinux联盟
   create or replace package body H_QUERYPACK Is 5jELinux联盟
   -- Author : Evorul 5jELinux联盟
   -- Created : 2007-3-29 5jELinux联盟
   -- Purpose : 查询 5jELinux联盟
   5jELinux联盟
   -- 查询公司,分页用 5jELinux联盟
   PROCEDURE QUERYLOG (RET_CURSOR OUT MYCURSOR,ERRORCODE OUT INT,p_logID int,p_StartTime Date,p_EndTime Date,p_Operator varchar2 ,p_OrderField varchar2 , 5jELinux联盟
   p_Desc int,p_PageSize Int,p_PageIndex Int,p_RecordCount Out Int) 5jELinux联盟
   AS 5jELinux联盟
   v_sql varchar2(3000); 5jELinux联盟
   v_sqlcount varchar2(3000); 5jELinux联盟
   v_orderfield varchar2(100); 5jELinux联盟
   v_order VARCHAR2(5); --顺序 5jELinux联盟
   v_count int; 5jELinux联盟
   v_heiRownum int; 5jELinux联盟
   v_lowRownum int; 5jELinux联盟
   BEGIN 5jELinux联盟
   ERRORCODE:=0; 5jELinux联盟
   5jELinux联盟
   v_sql:='select * from LOG Where 1=1 '; 5jELinux联盟
   5jELinux联盟
   if(p_logID <> 0)then 5jELinux联盟
   v_sql := v_sql || ' and id = ' || TO_CHAR(p_logID); 5jELinux联盟
   end if; 5jELinux联盟
   5jELinux联盟
   IF p_Operator Is Not Null Then then 5jELinux联盟
   v_sql := v_sql || 'And operator LIKE ''%' || RTRIM(LTRIM(p_Operator))||'%'''; 5jELinux联盟
   end if; 5jELinux联盟
   5jELinux联盟
   v_sql := v_sql ||' and (TO_CHAR(time,''YYYYMMDD'') between ''' || to_char(p_StartTime, 'YYYYMMDD') ||''' and ''' || to_char(p_EndTime, 'YYYYMMDD') ||''')'; 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   ----取记录总数 5jELinux联盟
   v_sqlcount := 'select count(*) from (' || v_sql || ')'; 5jELinux联盟
   execute immediate v_sqlcount into v_count; 5jELinux联盟
   p_RecordCount := v_count; 5jELinux联盟
   5jELinux联盟
   --排序字段 5jELinux联盟
   IF p_OrderField IS NOT NULL THEN 5jELinux联盟
   v_orderfield:=p_OrderField; 5jELinux联盟
   Else 5jELinux联盟
   v_orderfield:='ID'; 5jELinux联盟
   END IF; 5jELinux联盟
   --是否降序 5jELinux联盟
   IF p_Desc <>0 THEN 5jELinux联盟
   v_order:=' ASC'; 5jELinux联盟
   Else 5jELinux联盟
   v_order:=' DESC'; 5jELinux联盟
   END IF; 5jELinux联盟
   5jELinux联盟
   v_sql:=v_sql || 'ORDER BY '|| v_orderfield || v_order; 5jELinux联盟
   ----执行分页查询 5jELinux联盟
   v_heiRownum := p_PageIndex * p_PageSize; 5jELinux联盟
   v_lowRownum := v_heiRownum - p_PageSize + 1; 5jELinux联盟
   5jELinux联盟
   v_sql := 'SELECT * FROM ( 5jELinux联盟
   SELECT A.*, rownum rn FROM ('|| v_sql ||') A WHERE rownum <= '|| to_char(v_heiRownum) || ') B WHERE rn >= ' || to_char(v_lowRownum) ; 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   OPEN RET_CURSOR FOR v_sql; 5jELinux联盟
   5jELinux联盟
   EXCEPTION 5jELinux联盟
   WHEN NO_DATA_FOUND THEN 5jELinux联盟
   ERRORCODE:=9999; 5jELinux联盟
   WHEN OTHERS THEN 5jELinux联盟
   ERRORCODE:=9999; 5jELinux联盟
   END QUERYLOG; 5jELinux联盟
   5jELinux联盟
   END H_QUERYPACK; 5jELinux联盟
二、程序 5jELinux联盟
   5jELinux联盟
  DataAccess.cs 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   5jELinux联盟
  using System; 5jELinux联盟
  using System.Data; 5jELinux联盟
  using System.Data.OracleClient; 5jELinux联盟
  using System.Collections; 5jELinux联盟
  using System.Collections.Specialized; 5jELinux联盟
   5jELinux联盟
  /**//// <summary> 5jELinux联盟
  ///数据层 author: EvoRul date:2007-03-29 5jELinux联盟
  /// </summary> 5jELinux联盟
  public class DataAccess 5jELinux联盟
  ...{ 5jELinux联盟
   5jELinux联盟
   /**//// <summary> 5jELinux联盟
   /// 返回数据库连接字符串 5jELinux联盟
   /// </summary> 5jELinux联盟
   public static String DatabaseConnectionString 5jELinux联盟
   ...{ 5jELinux联盟
   get 5jELinux联盟
   ...{ 5jELinux联盟
   NameValueCollection configSettings = (NameValueCollection)System.Configuration.ConfigurationManager.GetSection("appSettings"); 5jELinux联盟
   return configSettings["connectionString"]; 5jELinux联盟
   } 5jELinux联盟
   } 5jELinux联盟
   5jELinux联盟
   /**//// <summary> 5jELinux联盟
   /// 返回每一页显示的纪录数 5jELinux联盟
   /// </summary> 5jELinux联盟
   public static int RowsPerPage 5jELinux联盟
   ...{ 5jELinux联盟
   get 5jELinux联盟
   ...{ 5jELinux联盟
   NameValueCollection configSettings = (NameValueCollection)System.Configuration.ConfigurationManager.GetSection("appSettings"); 5jELinux联盟
   return Convert.ToInt32(configSettings["rowsPerPage"]); 5jELinux联盟
   } 5jELinux联盟
   } 5jELinux联盟
   5jELinux联盟
   /**//// <summary> 5jELinux联盟
   /// 获取特定日志集合 5jELinux联盟
   /// </summary> 5jELinux联盟
   /// <param name="typeID">日志类型</param> 5jELinux联盟
   /// <param name="userID">操作人</param> 5jELinux联盟
   /// <param name="strOrderField">排序字段</param> 5jELinux联盟
   /// <param name="intASC">是否升序 0-降序,1-升</param> 5jELinux联盟
   /// <param name="PageIndex">页码</param> 5jELinux联盟
   /// <param name="rowCount">页行数</param> 5jELinux联盟
   /// <param name="recordSum">符合条件的总记录数</param> 5jELinux联盟
   /// <returns></returns> 5jELinux联盟
   public static ArrayList QueryLog(string strOperator,DateTime dtStartTime,DateTime dtEndTime, string strOrderField, 5jELinux联盟
   int intASC, int PageIndex, int rowCount, out int recordSum) 5jELinux联盟
   ...{ 5jELinux联盟
   // 返回集合 5jELinux联盟
   ArrayList myArrayList = new ArrayList(); 5jELinux联盟
   5jELinux联盟
   // 创建连接 5jELinux联盟
   OracleConnection myConnection = new OracleConnection(DatabaseConnectionString); 5jELinux联盟
   5jELinux联盟
   try 5jELinux联盟
   ...{ 5jELinux联盟
   // 打开连接 5jELinux联盟
   myConnection.Open(); 5jELinux联盟
   } 5jELinux联盟
   catch (Exception ex) 5jELinux联盟
   ...{ 5jELinux联盟
   throw (ex); 5jELinux联盟
   } 5jELinux联盟
   5jELinux联盟
   try 5jELinux联盟
   ...{ 5jELinux联盟
   // 创建存储过程 5jELinux联盟
   OracleCommand myCommand = new OracleCommand("H_QUERYPACK.QUERYLOG", myConnection); 5jELinux联盟
   myCommand.CommandType = CommandType.StoredProcedure; 5jELinux联盟
   OracleDataReader dr; 5jELinux联盟
   5jELinux联盟
   // ============================== 参数定义 ============================== 5jELinux联盟
   5jELinux联盟
   // 返回值 5jELinux联盟
   myCommand.Parameters.Add("RET_CURSOR", OracleType.Cursor); 5jELinux联盟
   myCommand.Parameters["RET_CURSOR"].Direction = ParameterDirection.Output; 5jELinux联盟
   OracleParameter ret = myCommand.Parameters.Add("ERRORCODE", OracleType.Int32); 5jELinux联盟
   ret.Direction = ParameterDirection.Output; 5jELinux联盟
   5jELinux联盟
   OracleParameter retCountSum = myCommand.Parameters.AddWithValue("p_RecordCount", OracleType.Int32); 5jELinux联盟
   retCountSum.Direction = ParameterDirection.Output; 5jELinux联盟
   5jELinux联盟
   // 编号 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_logID", OracleType.Int32).Value = 0; 5jELinux联盟
   5jELinux联盟
   // 用户编号 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_Operator", OracleType.VarChar).Value = strOperator; 5jELinux联盟
   5jELinux联盟
   // 时间下限 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_StartTime", OracleType.DateTime).Value = dtStartTime; 5jELinux联盟
   5jELinux联盟
   // 时间上限 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_EndTime", OracleType.DateTime).Value =dtEndTime; 5jELinux联盟
   5jELinux联盟
   // 排序字段 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_OrderField", OracleType.VarChar).Value = strOrderField; 5jELinux联盟
   5jELinux联盟
   // 怎么排序 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_Desc", OracleType.Int32).Value = intASC; 5jELinux联盟
   5jELinux联盟
   // 每页行数 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_PageSize", OracleType.Int32).Value = rowCount; 5jELinux联盟
   5jELinux联盟
   //页码 5jELinux联盟
   myCommand.Parameters.AddWithValue("p_PageIndex", OracleType.Int32).Value = PageIndex; 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   // ============================ 参数定义完毕 ============================ 5jELinux联盟
   5jELinux联盟
   // 执行存储过程 5jELinux联盟
   dr = myCommand.ExecuteReader(); 5jELinux联盟
   5jELinux联盟
   // 执行未成功 5jELinux联盟
   if (Convert.ToInt32(ret.Value) != 0) 5jELinux联盟
   throw new Exception("执行存储过程出错!"); 5jELinux联盟
   5jELinux联盟
   // 总记录数 5jELinux联盟
   recordSum = Convert.ToInt32(retCountSum.Value); 5jELinux联盟
   5jELinux联盟
   5jELinux联盟
   while (dr.Read()) 5jELinux联盟
   ...{ 5jELinux联盟
   // 创建新日志 5jELinux联盟
   Log log = new Log(); 5jELinux联盟
   5jELinux联盟
   //操作业务类型 5jELinux联盟
   if (dr["operationtype"] != DBNull.Value) 5jELinux联盟
   ...{ 5jELinux联盟
   log.OperationType = Convert.ToString(dr["operationtype"]); 5jELinux联盟
   } 5jELinux联盟
   // 时间 5jELinux联盟
   if (dr["time"] != DBNull.Value) 5jELinux联盟
   log.Time = Convert.ToDateTime(dr["time"]); 5jELinux联盟
   5jELinux联盟
   // 用户 5jELinux联盟
   if (dr["operator"] != DBNull.Value) 5jELinux联盟
   ...{ 5jELinux联盟
   log.Operator = Convert.ToString(dr["operator"]); 5jELinux联盟
   } 5jELinux联盟
   5jELinux联盟
   // 信息 5jELinux联盟
   if (dr["info"] != DBNull.Value) 5jELinux联盟
   log.Info = Convert.ToString(dr["info"]); 5jELinux联盟
   5jELinux联盟
   // 加入返回集合 5jELinux联盟
   myArrayList.Add(log); 5jELinux联盟
   } 5jELinux联盟
   5jELinux联盟
   dr.Close(); 5jELinux联盟
   return myArrayList; 5jELinux联盟
   } 5jELinux联盟
   catch (Exception ex) 5jELinux联盟
   ...{ 5jELinux联盟
   throw (ex); 5jELinux联盟
   } 5jELinux联盟
   finally 5jELinux联盟
   ...{ 5jELinux联盟
   myConnection.Close(); 5jELinux联盟
   } 5jELinux联盟
   } 5jELinux联盟
  } 5jELinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
分页:[1] 2
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·asp.net 客户端回调功能的实现机制探讨  (2007-11-02 13:40:41)