欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

sqlserver 存儲(chǔ)過(guò)程學(xué)習(xí)筆記(二) 在項(xiàng)目中的

系統(tǒng) 2035 0

(1)存儲(chǔ)過(guò)程建立

USE [NewPlat] GO

/****** Object:? StoredProcedure [dbo].[usp_PagingLarge]??? Script Date: 07/11/2013 08:27:44 ******/ SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

Create PROCEDURE [dbo].[usp_PagingLarge]?

@TableNames VARCHAR(200),???? --表名,可以是多個(gè)表,但不能用別名

@PrimaryKey VARCHAR(100),???? --主鍵,可以為空,但@Order為空時(shí)該值不能為空?

@Fields???? VARCHAR(4000),???????? --要取出的字段,可以是多個(gè)表的字段,可以為空,為空表示select *?

@PageSize INT,???????????? --每頁(yè)記錄數(shù)?

@CurrentPage INT,???????? --當(dāng)前頁(yè),0表示第1頁(yè)?

@Filter VARCHAR(4000) = '',???? --條件,可以為空,不用填 where?

@Group VARCHAR(200) = '',???? --分組依據(jù),可以為空,不用填 group by?

@Order VARCHAR(200) = '',??? --排序,可以為空,為空默認(rèn)按主鍵升序排列,不用填 order by?

@RecordCount int OUTPUT???????????? --總記錄數(shù),自己增加(總記錄數(shù))

?AS?

BEGIN? ????

DECLARE @SortColumn VARCHAR(200)? ??

DECLARE @Operator CHAR(2)? ????

DECLARE @SortTable VARCHAR(200)? ????

DECLARE @SortName VARCHAR(200)? ????

IF @Fields = ''? ????????

SET @Fields = '*'? ????

IF @Filter = ''? ????????

SET @Filter = 'Where 1=1'? ????

ELSE? ????????

SET @Filter = 'Where ' +?? @Filter? ????

IF @Group <>''? ????????

SET @Group = 'GROUP BY ' + @Group? ? ????

IF @Order <> ''? ????

BEGIN? ????????

DECLARE @pos1 INT, @pos2 INT? ????????

SET @Order = REPLACE(REPLACE(@Order, ' asc', ' ASC'), ' desc', ' DESC')? ????????

IF CHARINDEX(' DESC', @Order) > 0? ?????

IF CHARINDEX(' ASC', @Order) > 0? ????????????

BEGIN? ????????????????

IF CHARINDEX(' DESC', @Order) < CHARINDEX(' ASC', @Order)? ????????????????????

SET @Operator = '<='? ????????????????

ELSE? ????????????????????

SET @Operator = '>='? ????????????

END? ???????????

? ELSE? ???????????????

? SET @Operator = '<='? ????????

ELSE? ????????????

SET @Operator = '>='? ????????

SET @SortColumn = REPLACE(REPLACE(REPLACE(@Order, ' ASC', ''), ' DESC', ''), ' ', '')? ????????

SET @pos1 = CHARINDEX(',', @SortColumn)????????

? IF @pos1 > 0? ????????????

SET @SortColumn = SUBSTRING(@SortColumn, 1, @pos1-1)? ????????

SET @pos2 = CHARINDEX('.', @SortColumn)? ????????

IF @pos2 > 0? ????????

BEGIN? ????????????

SET @SortTable = SUBSTRING(@SortColumn, 1, @pos2-1)? ????????????

IF @pos1 > 0?? ????????????????

SET @SortName = SUBSTRING(@SortColumn, @pos2+1, @pos1-@pos2-1)? ????????????

ELSE? ????????????????

SET @SortName = SUBSTRING(@SortColumn, @pos2+1, LEN(@SortColumn)-@pos2)? ????????

END? ????????

ELSE? ????????

BEGIN? ????????????

SET @SortTable = @TableNames? ????????????

SET @SortName = @SortColumn? ????????

END? ????

END? ????

ELSE? ????

BEGIN? ????????

SET @SortColumn = @PrimaryKey? ????????

SET @SortTable = @TableNames? ????????

SET @SortName = @SortColumn? ????????

SET @Order = @SortColumn? ????????

SET @Operator = '>='? ????

END? ? ????

DECLARE @type varchar(50)? ????

DECLARE @prec int? ????

Select @type=t.name, @prec=c.prec? ???? FROM sysobjects o?? ???? JOIN syscolumns c on o.id=c.id? ???? JOIN systypes t on c.xusertype=t.xusertype? ???? Where o.name = @SortTable AND c.name = @SortName? ???

? IF CHARINDEX('char', @type) > 0? ????

SET @type = @type + '(' + CAST(@prec AS varchar) + ')'? ? ???

? DECLARE @TopRows INT? ????

SET @TopRows = @PageSize * @CurrentPage + 1? ????

print @TopRows?

print @Operator? ????

EXEC('? ???????? DECLARE @SortColumnBegin ' + @type + '? ???????? SET ROWCOUNT ' + @TopRows + '? ???????? Select @SortColumnBegin=' + @SortColumn + ' FROM?? ' + @TableNames + ' ' + @Filter + ' ' + @Group + ' orDER BY ' + @Order + '? ???????? SET ROWCOUNT ' + @PageSize + '? ???????? Select ' + @Fields + ' FROM?? ' + @TableNames + ' ' + @Filter?? + ' AND ' + @SortColumn + '' + @Operator + '@SortColumnBegin ' + @Group + ' orDER BY ' + @Order + '????? ???? ')????? ?????

IF @RecordCount IS NULL?

BEGIN? ??? DECLARE @sql nvarchar(4000)? ???

SET @sql=N'SELECT @RecordCount=COUNT(*)'? ??????? +N' FROM '+@TableNames ? ??????? +N' '+@Filter ? ???

EXEC sp_executesql @sql,N'@RecordCount int OUTPUT',@RecordCount OUTPUT?

END ? ?

END?

GO

?

(2)實(shí)現(xiàn)多表分頁(yè)的函數(shù)(c#代碼)

?public static DataTable ExecMultiPageList(string tableName, string iDName, string Fields, int pageSize, int currentPage, string Filter, string Group, string Order, List<SqlParameter> list, out int rowCount)
??????? {
??????????? rowCount = 0;
??????????? SqlConnection connection = new SqlConnection(connectionString);
??????????? SqlParameter[] parameters = {??
??????????????????? new SqlParameter("@TableNames",SqlDbType.VarChar,200),?
??????????????????? new SqlParameter("@PrimaryKey",SqlDbType.VarChar,100),?
??????????????????? new SqlParameter("@Fields",SqlDbType.VarChar,200),?
??????????????????? new SqlParameter("@PageSize",SqlDbType.Int,4),?
??????????????????? new SqlParameter("@CurrentPage",SqlDbType.Int,4),?
??????????????????? new SqlParameter("@Filter",SqlDbType.VarChar,200),?
??????????????????? new SqlParameter("@Group",SqlDbType.VarChar,200),?
??????????????????? new SqlParameter("@Order",SqlDbType.VarChar,200),?
??????????????????? new SqlParameter("@RecordCount",SqlDbType.Int,4)?
??????????????? };//參數(shù)列表?
??????????? parameters[0].Value = tableName;
??????????? parameters[1].Value = iDName;
??????????? parameters[2].Value = Fields;
??????????? parameters[3].Value = pageSize;
??????????? parameters[4].Value = currentPage;
??????????? parameters[5].Value = Filter;
??????????? parameters[6].Value = Group;
??????????? parameters[7].Value = Order;//參數(shù)對(duì)應(yīng)值?
??????????? parameters[8].Value = rowCount;
??????????? parameters[8].Direction = ParameterDirection.Output;
??????????? SqlCommand cmd = new SqlCommand();
??????????? cmd.Connection = connection;
??????????? cmd.CommandText = "usp_PagingLarge";//存儲(chǔ)過(guò)程名?
??????????? cmd.CommandType = CommandType.StoredProcedure;//類型?
??????????? cmd.Parameters.AddRange(parameters);
??????????? SqlDataAdapter da = new SqlDataAdapter(cmd);
??????????? DataTable dt = new DataTable();
??????????? da.Fill(dt);
??????????? connection.Close();
??????????? rowCount = Convert.ToInt32(parameters[8].Value);//輸出?
??????????? return dt;
??????? }

?

(3)調(diào)用多表分頁(yè)的方法

??????? public string GetFenye(out int recordcount, NameValueCollection form,string loginid,int flag) ??????? { ????

??????? QueryModel queryMdodel = QueryModel.getQueryModel(form);

???????? string tablename = "Email_MailSender left join Email_MailInfo on Email_MailSender.mailid=Email_MailInfo.Mailid "; ??????

? ????? string iDName = "Email_MailSender.mailsenderid"; ???????????

?????? ?string Fields = "Email_MailSender.*,Email_MailInfo.mailtopic,Email_MailInfo.sendtime"; ???????????

????????int PageSize = queryMdodel.rows;????????????????????????????? ???????????

?????? ?int PageIndex = queryMdodel.page == 0 ? 0 : queryMdodel.page - 1; ???????????

?????? ?string Filter = "Email_MailSender.senderid = '" + loginid + "' and Email_MailSender.sendstatus ="+flag; ???????????

??????? string group = ""; ???????????

?????? ?string order = "Email_MailSender.mailsenderid asc"; ???????????

???????DataTable dt = DbHelperSQL.ExecMultiPageList(tablename, iDName, Fields, PageSize, PageIndex, Filter, group, order,queryMdodel.listPar ,out recordcount); ???????????

????? ?string strjson = Newtonsoft.Json.JsonConvert.SerializeObject(dt); ??????????? return strjson; ??

????? }

?

?

sqlserver 存儲(chǔ)過(guò)程學(xué)習(xí)筆記(二) 在項(xiàng)目中的應(yīng)用<多表分頁(yè)>


更多文章、技術(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)論
主站蜘蛛池模板: 久久欧美精品1024你懂得 | 婷婷国产精品 | 欧美成人免费在线视频 | 中文字幕乱码一区二区三区 | 久草欧美 | 日本高清视频在线三级 | 久久99久久99精品免观看不卡 | 亚洲热视频 | 亚洲一区2区三区4区5区 | 一级做a爰片性色毛片男小说 | 欧美精品在线观看 | 日韩欧美一区二区三区 | 色天堂影院| 图片区乱熟图片区小说 | 奇米影视7777久久精品人人爽 | 亚洲日本va| 日韩免费在线视频 | 亚洲欧美国产一区二区三区 | 一区二区三区国产 | 欧亚乱熟女一区二区在线 | 久久精品视频一区二区 | 黄在线观看在线播放720p | 在线a视频 | 亚洲天堂中文网 | 免费观看一级特黄欧美大片 | 521国产精品视频 | 超97在线观看精品国产 | 韩国成人毛片aaa黄 人人天天操 | 亚洲午夜小视频 | 国产一区二区三区久久久久久久久 | 日韩精品一区二区在线观看 | 成人一区二区在线 | 国产精品久久久久影院色老大 | 日本a视频| 久久国产热视频 | 午夜电影剧场 | 男女在线观看啪网站 | 色呦呦免费观看 | 色成人在线| 成人在线激情网 | a在线观看欧美在线观看 |