第一、首先在mysql中創(chuàng)建一個(gè)存儲(chǔ)過程
BEGIN /* @selectSql VARCHAR(5000), --sql語句 @orderWhere VARCHAR(200), --排序條件 @pageSize int, -- 每頁多少條記錄 @pageIndex int = 1 , -- 指定當(dāng)前為第幾頁 @TotalPage int output , -- 返回總頁數(shù) @totalCount int output -- 返回總記錄數(shù) */ SET @str =CONCAT( " SET @tCount=(SELECT COUNT(1) FROM ( " ,selectSql, " ) as t ); " ); PREPARE stmt1 FROM @str; EXECUTE stmt1; -- 總頁數(shù) SET @tPage =CEILING((@tCount+ 0.0 )/ PageSize); SET TotalCount = @tCount; SET TotalPage = @tPage; SET @str =CONCAT(selectSql, " " ,orderWhere, " LIMIT " ,(PageIndex- 1 )*PageSize, " , " ,PageSize, " ; " ); PREPARE stmt1 FROM @str; EXECUTE stmt1; END
二、c#代碼:
public static DataSet GetExecuteCustomPageDataSetMySql( string selectSql, string orderwhere, int iPage_Size, int iPage_Index, out int iPageCount, out int iiRecord_Count) { DataSet ds = null ; try { MySql.Data.MySqlClient.MySqlParameter[] param = new MySql.Data.MySqlClient.MySqlParameter[] { // IN selectSql varchar(4000),IN orderWhere varchar(200),IN PageSize int,IN PageIndex int,OUT TotalPage int,OUT TotalCount int new MySql.Data.MySqlClient.MySqlParameter( " ?selectSql " ,selectSql), new MySql.Data.MySqlClient.MySqlParameter( " ?orderWhere " ,orderwhere), new MySql.Data.MySqlClient.MySqlParameter( " ?pageSize " ,iPage_Size), new MySql.Data.MySqlClient.MySqlParameter( " ?pageIndex " ,iPage_Index), new MySql.Data.MySqlClient.MySqlParameter( " ?TotalPage " , MySql.Data.MySqlClient.MySqlDbType.Int32), new MySql.Data.MySqlClient.MySqlParameter( " ?TotalCount " , MySql.Data.MySqlClient.MySqlDbType.Int32) }; param[ 4 ].Direction = System.Data.ParameterDirection.Output; param[ 5 ].Direction = System.Data.ParameterDirection.Output; // cmd.CommandText = "up_ProcCustomPage2005"; // string sql="select * FROM Cabin order by AddTime desc LIMIT 0,20;"; iPageCount = 0 ; iiRecord_Count = 0 ; ds = MySqlHelper.ExecuteDataset(MySqlHelper.ConnectionString, CommandType.StoredProcedure, " proc_page " , param); try { iPageCount = Convert.ToInt32(param[ 4 ].Value); iiRecord_Count = Convert.ToInt32(param[ 5 ].Value); } catch (Exception ex) { iPageCount = 0 ; iiRecord_Count = 0 ; throw ; } finally { // param.cl.Clear(); } } catch (Exception e) { ds = null ; iPageCount = 0 ; iiRecord_Count = 0 ; throw ; } finally { // cnn.Close(); // cnn.Dispose(); } return ds; }
三、引用例子
public DataSet GetPurchaserSalesVolumeAnalysis( string where , string sFilter_Condition, int iPage_Size, int iPage_Index, string sTaxisField, int iTaxis_Sign, out int iPageCount, out int iiRecord_Count) { string sql = @" select DISTINCT NewT.ptPaymentDate FlightOrderSub NewT " ; string orderwhere = " ORDER BY NewT.ptPaymentDate " ; return BaitourDAO.Common.DBHelper.GetExecuteCustomPageDataSetMySql( sql , orderwhere , iPage_Size , iPage_Index , out iPageCount , out iiRecord_Count); }
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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