亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

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

2024-07-24 13:11:27
字體:
來源:轉載
供稿:網友

創建表格并添加300萬數據

use StoredCREATE TABLE UserInfo( --創建表id int IDENTITY(1,1) PRIMARY KEY not null,--添加主鍵和標識列UserName varchar(50) ) declare @i int --添加3百萬數據,大概4分鐘時間set @i=1while @i<3000000begininsert into UserInfo (UserName) values(@i)set @i=@i+1end

存儲過程T-SQL

create PROCEDURE [dbo].[GetDataList]( @TableName varchar(5000),    --表名 @Fields varchar(5000) = '*',   --字段名(全部字段為*) @OrderField varchar(5000),    --排序字段(必須!支持多字段) @OrderType varchar(5000),    --排序類型 @sqlWhere varchar(5000) = Null, --條件語句(不用加where) @pageSize int,          --每頁多少條記錄 @pageIndex int = 1 ,       --指定當前為第幾頁 @TotalPage int output,      --返回總頁數  @totalRecord int output    --計算總記錄數       --返回總記錄數 )asbegin  Begin Tran --開始事務      Declare  @sql nvarchar(500);   if (@SqlWhere='' or @sqlWhere=NULL)    set @sql = 'select @totalRecord = count(*) from ' + @TableName  else    set @sql = 'select @totalRecord = count(*) from ' + @TableName + ' where ' + @sqlWhere        EXEC sp_executesql @sql,N'@totalRecord int OUTPUT',@totalRecord OUTPUT--計算總記錄數             --計算總頁數  select @TotalPage=CEILING((@totalRecord+0.0)/@PageSize)  if (@SqlWhere='' or @sqlWhere=NULL)    set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+' ) as rowId,' + @Fields + ' from ' + @TableName   else    set @sql = 'Select * FROM (select ROW_NUMBER() Over(order by ' + @OrderField +' ' + @Ordertype+' ) as rowId,' + @Fields + ' from ' + @TableName + ' where ' + @SqlWhere  --處理頁數超出范圍情況  if @PageIndex<=0     Set @pageIndex = 1    if @pageIndex>@TotalPage    Set @pageIndex = @TotalPage   --處理開始點和結束點  Declare @StartRecord int  Declare @EndRecord int    set @StartRecord = (@pageIndex-1)*@PageSize + 1  set @EndRecord = @StartRecord + @pageSize - 1  --繼續合成sql語句  set @Sql = @Sql + ') as ' + @TableName + ' where rowid between ' + Convert(varchar(50),@StartRecord) + ' and ' + Convert(varchar(50),@EndRecord)   --print @Sql      Exec(@Sql)  ---------------------------------------------------  If @@Error <> 0   Begin    RollBack Tran    Return -1   End   Else   Begin    Commit Tran    Return @totalRecord ---返回記錄總數   End  end--exec GetDataList 'Userinfo','*','id','desc','',10,1,3,3000000

前臺頁面Default2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">  <title></title></head><body>  <form id="form1" runat="server">  <div>   <asp:GridView ID="GridView1" runat="server">    </asp:GridView>    <asp:Label ID="lbl_page" runat="server" Text="Label"></asp:Label>  </div>  </form></body></html>

后臺CS代碼Default2.aspx.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Text;public partial class Default2 : System.Web.UI.Page{    private int PageIndex = 0;//當前頁碼  private int PageSize = 50;//每頁幾條記錄  private int TotalPage = 1;//總分頁數  private int TotalRecord = 0;//總記錄  private string OrderType = " desc";//排序方式 默認正序  protected void Page_Load(object sender, EventArgs e)  {    if (!IsPostBack)    {      GetParams();      DataSet ds = PageData("UserInfo", "*", "id", OrderType, "", PageSize, PageIndex, out TotalPage, out TotalRecord);      GridView1.DataSource = ds;      GridView1.DataBind();      lbl_page.Text = GetDivPager("", ds);    }  }  //數據庫連接字符  public static string StrConn()  {    //return string.Format("{0}","server=.;database=Stored;user=sa;password=123456");    return ConfigurationSettings.AppSettings["ConnString"].ToString();  }  //Get方式獲得下一頁  private void GetParams()  {    if (!String.IsNullOrEmpty(Request["page"]))    {      PageIndex = Convert.ToInt32(Request["Page"]);    }    else    {      PageIndex = 1;    }  }  #region 獲得分頁字符  public string GetDivPager(string queryString, DataSet ds)  {    StringBuilder sp = new StringBuilder();    int TotalCount = TotalRecord;    int rowCount = TotalPage;    if (ds != null)    {      sp.AppendFormat(" <p>總記錄:<span id=/"sum/">{0}</span>", TotalCount);      sp.AppendFormat(" 頁碼:<em><b id=/"current/">{0}</b>/<span id=/"count/">{1}</span></em> ", PageIndex, rowCount);      sp.AppendFormat(" 每頁:<span id=/"eachPage/">{0}</span></p> ", PageSize);            sp.AppendFormat(" <a href='{0}'>首頁</a> ", "?page=1" + queryString);      if (PageIndex > 1)      {        sp.AppendFormat(" <a href='{0}'>< 上一頁 </a>", "?page=" + (PageIndex - 1) + queryString);      }      int temp = 0;      int loopc = rowCount > 10 ? 10 : rowCount;      for (int i = 0; i < loopc; i++)      {        temp = i + 1;        if (PageIndex > 10) { temp = (PageIndex - 10) + i + 1; }        sp.AppendFormat(" <a class=/"{0}/" href='{1}'>{2}</a>", PageIndex == temp ? "active" : "", "?page=" + temp + queryString, temp);      }      if (PageIndex != rowCount)      {        sp.AppendFormat(" <a href='{0}'>下一頁 ></a>", "?page=" + (PageIndex + 1) + queryString);      }      sp.AppendFormat(" <a href='{0}'>尾頁</a>", "?page=" + rowCount + queryString);         }    else    {      ds = null;    }    return sp.ToString();  }  #endregion  #region 獲取分頁的數據  /// <summary>  /// 獲取分頁的數據  /// </summary>  /// <param name="TblName">數據表名</param>  /// <param name="Fields">要讀取的字段</param>  /// <param name="OrderField">排序字段</param>  /// <param name="OrderType">排序方式</param>  /// <param name="SqlWhere">查詢條件</param>  /// <param name="PageSize">每頁顯示多少條數據</param>  /// <param name="pageIndex">當前頁碼</param>  /// <param name="TotalPage">返回值,共有多少頁</param>  /// <param name="TotalRecord">返回值,總有多少條記錄</param>  /// <returns></returns>  public static DataSet PageData(string TblName, string Fields, string OrderField, string OrderType, string SqlWhere, int PageSize, int pageIndex, out int TotalPage, out int TotalRecord)  {    SqlConnection conn = new SqlConnection(StrConn());    SqlCommand comm = new SqlCommand("GetDataList", conn);    comm.Parameters.Add(new SqlParameter("@TableName", SqlDbType.NVarChar, 100)).Value = TblName;    comm.Parameters.Add(new SqlParameter("@Fields", SqlDbType.NVarChar, 1000)).Value = Fields;    comm.Parameters.Add(new SqlParameter("@OrderField", SqlDbType.NVarChar, 1000)).Value = OrderField;    comm.Parameters.Add(new SqlParameter("@OrderType", SqlDbType.NVarChar, 1000)).Value = OrderType;    comm.Parameters.Add(new SqlParameter("@sqlWhere", SqlDbType.NVarChar, 1000)).Value = SqlWhere;    comm.Parameters.Add(new SqlParameter("@pageSize", SqlDbType.Int)).Value = PageSize;    comm.Parameters.Add(new SqlParameter("@pageIndex", SqlDbType.Int)).Value = pageIndex;    comm.Parameters.Add(new SqlParameter("@TotalPage", SqlDbType.Int));    comm.Parameters["@TotalPage"].Direction = ParameterDirection.Output;//獲得out出來的參數值    comm.Parameters.Add(new SqlParameter("@totalRecord", SqlDbType.Int));    comm.Parameters["@totalRecord"].Direction = ParameterDirection.Output;    comm.CommandType = CommandType.StoredProcedure;    SqlDataAdapter dataAdapter = new SqlDataAdapter(comm);    DataSet ds = new DataSet();    dataAdapter.Fill(ds);    TotalPage = (int)comm.Parameters["@TotalPage"].Value;    TotalRecord = (int)comm.Parameters["@totalRecord"].Value;    conn.Close();    conn.Dispose();    comm.Dispose();        return ds;  }  #endregion}

以上這篇通用SQL存儲過程分頁以及asp.net后臺調用的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人与娇小精品av专区| 川上优av一区二区线观看| 九九热精品在线| 国产一区二区黑人欧美xxxx| 久久久精品视频在线观看| 国产mv免费观看入口亚洲| 成人黄色中文字幕| 国模精品视频一区二区三区| 日韩在线视频免费观看高清中文| 97视频在线播放| 粗暴蹂躏中文一区二区三区| 欧美亚洲国产视频| 最近中文字幕mv在线一区二区三区四区| 国产成人一区二区在线| 57pao国产成人免费| 久久精品视频播放| 亚洲欧美日韩综合| 亚洲天堂av在线免费观看| 欧美激情日韩图片| 日韩av免费观影| 91精品在线影院| 国产精品视频免费观看www| 久久国产精品久久久久| 日韩精品中文字幕视频在线| 成人黄色av免费在线观看| 亚洲人在线视频| 欧美日韩国产二区| 欧美日韩国产一中文字不卡| 国产成人一区二区三区| 色樱桃影院亚洲精品影院| 欧美成人精品h版在线观看| 日韩av中文字幕在线免费观看| 日韩毛片在线观看| 亚洲精品美女久久久久| 日日骚久久av| 国产91色在线|免| 日韩电影免费观看在线| 清纯唯美亚洲激情| 亚洲精品视频二区| 国产精品免费一区二区三区都可以| 中文字幕日韩欧美| 2019中文字幕免费视频| 亚洲福利在线视频| 欧美成人精品一区二区三区| 性色av一区二区三区| 日本国产精品视频| 日韩视频免费在线观看| 久久久久久久久国产| 91精品国产自产在线观看永久| 日韩av资源在线播放| 国产xxx69麻豆国语对白| 欧美激情第三页| 欧美国产一区二区三区| 亚洲18私人小影院| 国产在线观看91精品一区| 国产精品日韩久久久久| 欧美激情网友自拍| 国产91网红主播在线观看| 92版电视剧仙鹤神针在线观看| 91久久国产婷婷一区二区| 日韩欧美视频一区二区三区| 日韩av在线免费观看一区| 欧美一级黄色网| 国产成人在线视频| 欧美激情2020午夜免费观看| 久久久久久久久久久久av| 久久久久久噜噜噜久久久精品| 欧美日韩午夜视频在线观看| 国产精品日韩在线| 欧美性在线视频| 一区二区三区视频观看| 人九九综合九九宗合| 久久久女人电视剧免费播放下载| 亚洲精品在线91| 日韩中文字幕免费| 日韩成人在线网站| 亚洲欧洲中文天堂| 精品一区二区三区三区| 亚洲第一免费播放区| 久久99国产综合精品女同| 精品久久久999| 欧美日韩xxx| 日韩精品视频在线播放| 欧美剧在线观看| 色偷偷偷亚洲综合网另类| 亚洲日本成人网| 自拍偷拍亚洲一区| 日韩动漫免费观看电视剧高清| 欧美黄网免费在线观看| 亚洲另类激情图| 欧美激情精品久久久久久变态| 精品无人国产偷自产在线| 91影视免费在线观看| 亚洲人在线视频| 欧美丝袜美女中出在线| 岛国视频午夜一区免费在线观看| 超碰97人人做人人爱少妇| 97超级碰碰人国产在线观看| 久久天天躁狠狠躁夜夜躁| 高清欧美性猛交xxxx| 中文字幕精品一区久久久久| 97成人在线视频| 亚洲一区制服诱惑| 欧美成人午夜免费视在线看片| 日本精品va在线观看| 深夜福利日韩在线看| 国产精品丝袜一区二区三区| 尤物九九久久国产精品的分类| 国产视频精品xxxx| 色综合亚洲精品激情狠狠| 国产精品久久激情| 色综合久久悠悠| 久久人人爽亚洲精品天堂| 日韩av影片在线观看| 国产精品三级网站| 亚洲韩国欧洲国产日产av| 中文字幕日韩av电影| 91av在线免费观看视频| 欧美精品第一页在线播放| 国内精品视频在线| 亚洲国产精品99久久| 久久久人成影片一区二区三区| 日韩精品在线观看网站| 国产精品久久久久久久一区探花| 久久久亚洲福利精品午夜| 97成人精品区在线播放| 欧美日韩福利在线观看| 久久久噜噜噜久久中文字免| 久久精品国产精品| 欧美极品在线播放| 日本19禁啪啪免费观看www| 国产成人激情小视频| 欧美精品日韩www.p站| 成人久久精品视频| 成人a在线观看| 91九色视频导航| 最好看的2019的中文字幕视频| 亚洲的天堂在线中文字幕| 午夜精品久久久久久久99黑人| 国产精品一区二区三区久久久| 欧美日韩在线视频一区二区| 欧美日韩中文在线观看| 欧美在线视频免费| 欧美香蕉大胸在线视频观看| 久久亚洲精品视频| 伊人精品在线观看| 欧美一级片在线播放| 久久久精品影院| 久久久噜噜噜久噜久久| 亚洲成人激情在线| 4438全国成人免费| 日韩精品在线视频美女| 国产欧美一区二区白浆黑人| 91久久综合亚洲鲁鲁五月天| 亚洲区在线播放| 国产精品久久国产精品99gif| 亚洲美女久久久| 国内精品一区二区三区| 97国产在线观看| 久久久久一本一区二区青青蜜月| 亚洲精品国产精品久久清纯直播| 亚洲一区亚洲二区| 韩曰欧美视频免费观看| 久久中文字幕一区|