亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

最近項(xiàng)目使用的SqLServer分頁(yè)存儲(chǔ)過(guò)程及調(diào)用封

系統(tǒng) 2318 0

存儲(chǔ)過(guò)程:

?

    USE [RS]

GO



/****** Object:  StoredProcedure [dbo].[UP_Paging]    Script Date: 05/30/2013 17:43:23 ******/

SET ANSI_NULLS ON

GO



SET QUOTED_IDENTIFIER ON

GO





ALTER PROCEDURE [dbo].[UP_Paging]

	@Tables nvarchar(512), --表名,多張表是請(qǐng)使用 tA a inner join tB b On a.AID = b.AID

	@PK nvarchar(128)='',    --主鍵,可以帶表頭 a.AID

	@Sort nvarchar(512) = '', --排序字段

	@PageIndex int = 1,    --開(kāi)始頁(yè)碼

	@PageSize int = 10,        --頁(yè)大小

	@Fields nvarchar(1024) = '*',--讀取字段

	@Where nvarchar(1024) = NULL,--Where條件

	@RecordCount int output --返回總條數(shù)

AS



DECLARE @strFilter nvarchar(4000)

declare @sql nvarchar(4000)

IF @Where IS NOT NULL AND @Where != ''

  BEGIN

   SET @strFilter = ' WHERE ' + @Where + ' '

  END

ELSE

  BEGIN

   SET @strFilter = ''

  END



if @Sort = ''

  set @Sort = @PK + ' DESC '



IF @PageIndex < 1

  SET @PageIndex = 1



if @PageIndex = 1 --第一頁(yè)提高性能

begin 

  set @sql = 'select top ' + str(@PageSize) +' '+@Fields+ '  from ' + @Tables + ' ' + @strFilter + ' ORDER BY  '+ @Sort

  print @sql

end 

else

  begin  

	DECLARE @START_ID varchar(50)	--頁(yè)開(kāi)始索引

	DECLARE @END_ID varchar(50)		--頁(yè)結(jié)束索引

	SET @START_ID = convert(varchar(50),(@PageIndex - 1) * @PageSize + 1)

	SET @END_ID = convert(varchar(50),@PageIndex * @PageSize)

	

	set @sql =  ' SELECT '+@Fields+ 

				' FROM '+

				' ('+

					' SELECT ROW_NUMBER() OVER(ORDER BY '+@Sort+') AS rownum, '+@Fields+ 

					' FROM '+@Tables+' ' +@strFilter+

				' ) AS D'+

				' WHERE rownum BETWEEN '+@START_ID+' AND ' +@END_ID +' ORDER BY '+@Sort

  END



EXEC (@sql)



--總條數(shù)

set @recordCount=0;

set @sql = N'SELECT  @recordCount=Count(1) FROM ' + @Tables + @strFilter

EXEC sp_executesql @sql,N'@recordCount int out',@RecordCount out



	



GO




  


C#調(diào)用代碼:

?

?

    /// <summary>

        /// 通用分頁(yè)

        /// </summary>

        /// <param name="pi"></param>

        public virtual void Pager(RPageInfo pi)

        {

            /*存儲(chǔ)過(guò)程

             CREATE PROCEDURE UP_Paging

	            @Tables nvarchar(512), --表名,多張表是請(qǐng)使用 tA a inner join tB b On a.AID = b.AID

	            @PK nvarchar(128)='',    --主鍵,可以帶表頭 a.AID

	            @Sort nvarchar(512) = '', --排序字段

	            @PageIndex int = 1,    --開(kāi)始頁(yè)碼

	            @PageSize int = 10,        --頁(yè)大小

	            @Fields nvarchar(1024) = '*',--讀取字段

	            @Where nvarchar(1024) = NULL,--Where條件

	            @RecordCount int output --返回總條數(shù)

            AS

             */

            SqlParameter[] parameters = {

					new SqlParameter("@Tables", SqlDbType.NVarChar,512),

                    new SqlParameter("@PK", SqlDbType.NVarChar,128),

                    new SqlParameter("@Sort", SqlDbType.NVarChar,512),

                    new SqlParameter("@PageIndex", SqlDbType.Int),

                    new SqlParameter("@PageSize", SqlDbType.Int),

                    new SqlParameter("@Fields", SqlDbType.NVarChar,1024),

                    new SqlParameter("@Where", SqlDbType.NVarChar,1024),

                    new SqlParameter("@RecordCount", SqlDbType.Int)



			};

            parameters[0].Value = pi.TableName;

            parameters[1].Value = pi.Pk;

            parameters[2].Value = pi.Sort;

            parameters[3].Value = pi.PageIndex;

            parameters[4].Value = pi.PageSize;

            parameters[5].Value = pi.Fields;

            parameters[6].Value = pi.Fwhere;

            parameters[7].Direction = ParameterDirection.Output;



            DataTable data = DbHelperSQL.RunProcedure("UP_Paging", parameters, "ds").Tables[0];

            pi.Data = data;

            pi.RecordCount = Convert.ToInt32(parameters[7].Value);

            pi.PageCount = (long)Math.Ceiling(pi.RecordCount/(pi.PageSize+0.0));

        }
  


RPageInfo封裝的分頁(yè)信息,代碼如下:

?

?

    /// <summary>

    /// 分頁(yè)信息類(lèi)

    /// </summary>

    public class RPageInfo

    {



        private String _tableName;

        /// <summary>

        /// 表名,可以是子查詢,但必須如下:

        ///     (select * from Dept) as model

        /// </summary>

        public String TableName

        {

            get { return _tableName; }

            set { _tableName = value; }

        }

        private String _pk=string.Empty;

        /// <summary>

        /// 主鍵或者其它字段

        /// </summary>

        public String Pk

        {

            get { return _pk; }

            set { _pk = value; }

        }

        private string _sort = string.Empty;

        /// <summary>

        /// 排序,例如:字段1 ASC,字段2 DESC

        /// 主鍵和排序字段是互斥的

        /// </summary>

        public string Sort

        {

            get { return _sort; }

            set { _sort = value; }

        }

        private string _fields="*";

        /// <summary>

        /// 要顯示的字段,默認(rèn)為*

        /// </summary>

        public string Fields

        {

            get { return _fields; }

            set { _fields = value; }

        }

        private string _fwhere = string.Empty;

        /// <summary>

        /// 篩選條件

        /// </summary>

        public string Fwhere

        {

            get { return _fwhere; }

            set { _fwhere = value; }

        }



        private int _pageIndex = 1;



        /// <summary>

        /// 頁(yè)號(hào)

        /// </summary>

        public int PageIndex

        {

            get { return _pageIndex; }

            set { _pageIndex = value; }

        }

        private int _pageSize = 10;

        /// <summary>

        /// 頁(yè)大小

        /// </summary>

        public int PageSize

        {

            get { return _pageSize; }

            set { _pageSize = value; }

        }



        private long _recordCount;

        /// <summary>

        /// 總條數(shù)

        /// </summary>

        public long RecordCount

        {

            get { return _recordCount; }

            set { _recordCount = value; }

        }

        private long _pageCount;

        /// <summary>

        /// 總頁(yè)數(shù)

        /// </summary>

        public long PageCount

        {

            get { return _pageCount; }

            set { _pageCount = value; }

        }

        private DataTable _data;

        /// <summary>

        /// 結(jié)果集

        /// </summary>

        public DataTable Data

        {

            get { return _data; }

            set { _data = value; }

        }

    }
  


使用代碼:

?

?

    /// <summary>

        /// 獲得醫(yī)院信息

        /// </summary>

        /// <param name="pi"></param>

        /// <param name="isCityHospital">是否縣級(jí)醫(yī)院</param>

        /// <param name="hospitalName">醫(yī)院名稱(chēng)</param>

        public void GetHospitals(RPageInfo pi,bool? isCityHospital,string hospitalName)

        {

            pi.TableName = "(SELECT * FROM [HOSPITAL] WHERE 1=1 ";

            if (isCityHospital!=null && isCityHospital.Value)

            {

                pi.TableName += " AND [LEVEL]=1";

            }

            else if (isCityHospital != null && !isCityHospital.Value)

            {

                pi.TableName += " AND [LEVEL]=0";

            }

            if (hospitalName != null && hospitalName.Trim() != string.Empty)

            {

                pi.TableName += " AND [HOSTPITALNAME] LIKE '%" + hospitalName + "%'";

            }

            pi.TableName += ") AS MODEL ";

            pi.Pk = "HospitalID";

            base.Pager(pi);

        }
  


?

?

最近項(xiàng)目使用的SqLServer分頁(yè)存儲(chǔ)過(guò)程及調(diào)用封裝代碼


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久香蕉国产线看观看8青草 | 久久精品国产亚洲精品2020 | a毛片成人免费全部播放 | 成人亚洲欧美日韩在线观看 | 国产精品99re | 又粗又大的机巴好爽7 | 日韩女人做爰大片 | 日日干日日摸 | 香港三级做爰大爽视频 | 日本黄页网站在线观看 | 九九精品成人免费国产片 | 青草青视频在线观看 | 不卡影视 | 毛片视 | 国产香蕉一区二区在线网站 | 国产午夜亚洲精品国产 | 8050午夜一级全黄毛片 | 日本高清不卡视频 | 四虎在线免费观看 | 波多野结衣一区二区三区 | 中文字幕精品在线 | 美女啪啪免费网站 | 中国一级特黄真人毛片免 | 国产精品四虎视频一区 | 91精品欧美成人 | 精品伊人久久 | 男女www| 尤物久久99热国产综合 | 日韩亚洲欧美在线爱色 | 色片网站在线观看 | 五月情视频在线观看 | 好看的亚洲视频 | 一区二区在线精品免费视频 | 日一级片| 国产亚洲精品一区二区在线观看 | 久久天堂网 | 天天插天天射天天操 | 亚洲高清在线视频 | porno xxxx日本| 免费国产黄线在线观看视频 | 高清一级毛片一本到免费观看 |