成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通用SQL存儲過程分頁以及asp.net后臺調用

數據庫 SQL Server
創建表格并添加300萬數據

 創建表格并添加300萬數據

  1. use Stored 
  2. CREATE TABLE UserInfo(  --創建表 
  3. id int  IDENTITY(1,1) PRIMARY KEY not null,--添加主鍵和標識列 
  4. UserName varchar(50)  
  5.   
  6. declare @i int  --添加3百萬數據,大概4分鐘時間 
  7. set @i=1 
  8. while @i<3000000 
  9. begin 
  10. insert into UserInfo (UserName) values(@i) 
  11. set @i=@i+1 
  12. end 

存儲過程T-SQL

  1. USE [Stored] 
  2. GO 
  3. /****** Object:  StoredProcedure [dbo].[GetDataList]    Script Date: 08/17/2015 16:40:21 ******/ 
  4. SET ANSI_NULLS ON 
  5. GO 
  6. SET QUOTED_IDENTIFIER ON 
  7. GO 
  8. ALTER  PROCEDURE [dbo].[GetDataList] 
  9.  @TableName  varchar(5000),       --表名 
  10.  @Fields varchar(5000) = '*',     --字段名(全部字段為*) 
  11.  @OrderField varchar(5000),       --排序字段(必須!支持多字段) 
  12.  @OrderType varchar(5000),        --排序類型 
  13.  @sqlWhere varchar(5000) = Null,  --條件語句(不用加where) 
  14.  @pageSize int,                   --每頁多少條記錄 
  15.  @pageIndex int = 1 ,             --指定當前為第幾頁 
  16.  @TotalPage int output,           --返回總頁數  
  17.  @totalRecord int output       --計算總記錄數              --返回總記錄數 
  18.  ) 
  19. as 
  20. begin    Begin Tran --開始事務    Declare @sql nvarchar(4000); 
  21.      
  22.     Declare   @sql nvarchar(500)=''   
  23.     if (@SqlWhere='' or @sqlWhere=NULL
  24.         set @sql = 'select @totalRecord = count(*) from ' + @TableName 
  25.     else 
  26.         set @sql = 'select @totalRecord = count(*) from ' + @TableName + ' where ' + @sqlWhere    
  27.            EXEC sp_executesql @sql,N'@totalRecord int OUTPUT',@totalRecord OUTPUT--計算總記錄數   
  28.                  
  29.      
  30.     --計算總頁數 
  31.     select @TotalPage=CEILING((@totalRecord+0.0)/@PageSize)    if (@SqlWhere='' or @sqlWhere=NULL
  32.         set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+' ) as rowId,' + @Fields + ' from ' + @TableName  
  33.     else 
  34.         set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+'  ) as rowId,' + @Fields + ' from ' + @TableName + ' where ' + @SqlWhere     
  35.  
  36. --處理頁數超出范圍情況 
  37.     if @PageIndex<=0  
  38.         Set @pageIndex = 1 
  39.      
  40.     if @pageIndex>@TotalPage 
  41.         Set @pageIndex = @TotalPage     --處理開始點和結束點 
  42.     Declare @StartRecord int 
  43.     Declare @EndRecord int 
  44.      
  45.     set @StartRecord = (@pageIndex-1)*@PageSize + 1 
  46.     set @EndRecord = @StartRecord + @pageSize - 1    --繼續合成sql語句 
  47.     set @Sql = @Sql + ') as ' + @TableName + ' where rowid between ' + Convert(varchar(50),@StartRecord) + ' and ' +  Convert(varchar(50),@EndRecord)  
  48.     --print @Sql   
  49.      
  50.      Exec(@Sql) 
  51.     --------------------------------------------------- 
  52.     If @@Error <> 0 
  53.       Begin 
  54.         RollBack Tran 
  55.         Return -1 
  56.       End 
  57.      Else 
  58.       Begin 
  59.         Commit Tran 
  60.         Return @totalRecord ---返回記錄總數 
  61.       End     
  62. end 
  63.  
  64. --exec GetDataList 'Userinfo','*','id','desc','',10,1,3,3000000 

前臺頁面Default2.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml"
  6. <head runat="server"
  7.     <title></title> 
  8. </head> 
  9. <body> 
  10.     <form id="form1" runat="server"
  11.     <div> 
  12.      <asp:GridView ID="GridView1" runat="server"
  13.         </asp:GridView> 
  14.        <asp:Label ID="lbl_page" runat="server" Text="Label"></asp:Label> 
  15.     </div> 
  16.     </form> 
  17. </body> 
  18. </html> 

后臺CS代碼Default2.aspx.cs

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5. using System.Web.UI; 
  6. using System.Web.UI.WebControls; 
  7. using System.Data; 
  8. using System.Data.SqlClient; 
  9. using System.Configuration; 
  10. using System.Text; 
  11.  
  12.  
  13. public partial class Default2 : System.Web.UI.Page 
  14. {    
  15.     private int PageIndex = 0;//當前頁碼 
  16.     private int PageSize = 50;//每頁幾條記錄 
  17.     private int TotalPage = 1;//總分頁數 
  18.     private int TotalRecord = 0;//總記錄 
  19.     private string OrderType = " desc";//排序方式 默認正序 
  20.     protected void Page_Load(object sender, EventArgs e) 
  21.     { 
  22.         if (!IsPostBack) 
  23.         { 
  24.             GetParams(); 
  25.             DataSet ds = PageData("UserInfo""*""id", OrderType, "", PageSize, PageIndex, out TotalPage, out TotalRecord); 
  26.             GridView1.DataSource = ds; 
  27.             GridView1.DataBind(); 
  28.             lbl_page.Text = GetDivPager("", ds); 
  29.         } 
  30.     } 
  31.  
  32.     //數據庫連接字符 
  33.     public static string StrConn() 
  34.     { 
  35.         //return string.Format("{0}","server=.;database=Stored;user=sa;password=123456"); 
  36.         return ConfigurationSettings.AppSettings["ConnString"].ToString(); 
  37.     } 
  38.     //Get方式獲得下一頁 
  39.     private void GetParams() 
  40.     { 
  41.         if (!String.IsNullOrEmpty(Request["page"])) 
  42.         { 
  43.             PageIndex = Convert.ToInt32(Request["Page"]); 
  44.         } 
  45.         else 
  46.         { 
  47.             PageIndex = 1; 
  48.         } 
  49.     } 
  50.     #region 獲得分頁字符 
  51.     public string GetDivPager(string queryString, DataSet ds) 
  52.     { 
  53.         StringBuilder sp = new StringBuilder(); 
  54.         int TotalCount = TotalRecord; 
  55.         int rowCount = TotalPage; 
  56.         if (ds != null
  57.         { 
  58.             sp.AppendFormat("  <p>總記錄:<span id=\"sum\">{0}</span>", TotalCount); 
  59.             sp.AppendFormat("  頁碼:<em><b id=\"current\">{0}</b>/<span id=\"count\">{1}</span></em> ", PageIndex, rowCount); 
  60.             sp.AppendFormat("  每頁:<span id=\"eachPage\">{0}</span></p> ", PageSize); 
  61.              
  62.             sp.AppendFormat("  <a  href='{0}'>首頁</a> ""?page=1" + queryString); 
  63.             if (PageIndex > 1) 
  64.             { 
  65.                 sp.AppendFormat("  <a href='{0}'>< 上一頁 </a>""?page=" + (PageIndex - 1) + queryString); 
  66.             } 
  67.             int temp = 0; 
  68.             int loopc = rowCount > 10 ? 10 : rowCount; 
  69.             for (int i = 0; i < loopc; i++) 
  70.             { 
  71.                 temp = i + 1; 
  72.                 if (PageIndex > 10) { temp = (PageIndex - 10) + i + 1; } 
  73.                 sp.AppendFormat("  <a class=\"{0}\" href='{1}'>{2}</a>", PageIndex == temp ? "active" : """?page=" + temp + queryString, temp); 
  74.             } 
  75.             if (PageIndex != rowCount) 
  76.             { 
  77.                 sp.AppendFormat("  <a href='{0}'>下一頁 ></a>""?page=" + (PageIndex + 1) + queryString); 
  78.             } 
  79.             sp.AppendFormat("  <a href='{0}'>尾頁</a>""?page=" + rowCount + queryString); 
  80.            
  81.         } 
  82.         else 
  83.         { 
  84.             ds = null
  85.         } 
  86.         return sp.ToString(); 
  87.     } 
  88.     #endregion 
  89.     #region 獲取分頁的數據 
  90.     /// <summary> 
  91.     /// 獲取分頁的數據 
  92.     /// </summary> 
  93.     /// <param name="TblName">數據表名</param> 
  94.     /// <param name="Fields">要讀取的字段</param> 
  95.     /// <param name="OrderField">排序字段</param> 
  96.     /// <param name="OrderType">排序方式</param> 
  97.     /// <param name="SqlWhere">查詢條件</param> 
  98.     /// <param name="PageSize">每頁顯示多少條數據</param> 
  99.     /// <param name="pageIndex">當前頁碼</param> 
  100.     /// <param name="TotalPage">返回值,共有多少頁</param> 
  101.     /// <param name="TotalRecord">返回值,總有多少條記錄</param> 
  102.     /// <returns></returns
  103.     public static DataSet PageData(string TblName, string Fields, string OrderField, string OrderType, string SqlWhere, int PageSize, int pageIndex, out int TotalPage, out int TotalRecord) 
  104.     { 
  105.  
  106.         SqlConnection conn = new SqlConnection(StrConn()); 
  107.         SqlCommand comm = new SqlCommand("GetDataList", conn); 
  108.  
  109.         comm.Parameters.Add(new SqlParameter("@TableName", SqlDbType.NVarChar, 100)).Value = TblName; 
  110.         comm.Parameters.Add(new SqlParameter("@Fields", SqlDbType.NVarChar, 1000)).Value = Fields; 
  111.         comm.Parameters.Add(new SqlParameter("@OrderField", SqlDbType.NVarChar, 1000)).Value = OrderField; 
  112.         comm.Parameters.Add(new SqlParameter("@OrderType", SqlDbType.NVarChar, 1000)).Value = OrderType; 
  113.         comm.Parameters.Add(new SqlParameter("@sqlWhere", SqlDbType.NVarChar, 1000)).Value = SqlWhere; 
  114.         comm.Parameters.Add(new SqlParameter("@pageSize", SqlDbType.Int)).Value = PageSize; 
  115.         comm.Parameters.Add(new SqlParameter("@pageIndex", SqlDbType.Int)).Value = pageIndex; 
  116.         comm.Parameters.Add(new SqlParameter("@TotalPage", SqlDbType.Int)); 
  117.  
  118.         comm.Parameters["@TotalPage"].Direction = ParameterDirection.Output;//獲得out出來的參數值 
  119.  
  120.         comm.Parameters.Add(new SqlParameter("@totalRecord", SqlDbType.Int)); 
  121.         comm.Parameters["@totalRecord"].Direction = ParameterDirection.Output
  122.  
  123.         comm.CommandType = CommandType.StoredProcedure; 
  124.  
  125.         SqlDataAdapter dataAdapter = new SqlDataAdapter(comm); 
  126.         DataSet ds = new DataSet(); 
  127.         dataAdapter.Fill(ds); 
  128.  
  129.         TotalPage = (int)comm.Parameters["@TotalPage"].Value; 
  130.         TotalRecord = (int)comm.Parameters["@totalRecord"].Value; 
  131.  
  132.         conn.Close(); 
  133.         conn.Dispose(); 
  134.         comm.Dispose(); 
  135.          
  136.         return ds; 
  137.     } 
  138.     #endregion 

 

責任編輯:honglu 來源: 博客園
相關推薦

2012-04-23 15:10:18

ASP.NET

2011-04-29 13:23:11

分頁數據存儲

2009-07-27 14:33:51

ASP.NET調用存儲

2009-07-27 14:41:33

ASP.NET調用存儲

2009-11-06 09:23:41

ASP.NET高效分頁

2009-03-11 11:46:11

JSPASP.NET存儲過程

2011-06-17 17:37:16

JavaSQL Server

2010-03-19 09:17:16

ASP.NET MVC

2009-07-27 17:54:39

WCF服務ASP.NET

2010-11-10 15:16:14

Sql Server分

2009-07-28 11:23:04

Excel導入SQL

2012-04-13 10:05:24

ASP.NET

2009-07-22 16:02:39

ASP.NET MVCPagedList

2009-07-28 14:47:18

ASP.NET MVC

2010-01-22 16:48:54

VB.NET調用SQL

2009-07-24 09:02:24

ASP.Net RSA

2009-07-20 13:14:25

安裝ASP.NET A

2009-07-24 10:41:00

ASP.NET Ses

2009-08-04 14:23:36

ASP.NET查詢分頁

2009-08-05 16:59:38

ASP.NET調用Ex
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久成人免费一区二区 | 国产免费一区二区三区免费视频 | 热99| 天天av天天好逼 | 日本国产高清 | 少妇无套高潮一二三区 | 亚洲三级在线观看 | 亚洲高清在线 | 久久亚洲精品国产精品紫薇 | 日韩欧美三级 | 亚洲小视频在线观看 | 免费xxxx大片国产在线 | 欧美电影在线 | 成人激情免费视频 | 中文字幕亚洲视频 | 在线免费观看黄色av | 伊人伊成久久人综合网站 | 国产一区免费 | 日韩精品av| 国产免费一区二区三区最新6 | 国产超碰人人爽人人做人人爱 | 日韩中文字幕区 | 国产精品视频999 | 美女福利网站 | 欧美综合在线视频 | 免费观看一级毛片视频 | 成人亚洲精品久久久久软件 | 久久久久国产一区二区三区四区 | 国产精品美女久久久久久久网站 | 国产区视频在线观看 | 在线免费黄色小视频 | 在线观看亚洲一区二区 | 欧美 视频 | 羞羞色在线观看 | 中文字幕亚洲精品 | 久热电影| 波多野结衣精品 | 久久久久午夜 | 久久久999成人 | 国产一区二区三区色淫影院 | 91综合网 |