第一、首先在mysql中創建一個存儲過程
BEGIN
/*
@selectSql VARCHAR(5000), --sql語句
@orderWhere VARCHAR(200), --排序條件
@pageSize int, -- 每頁多少條記錄
@pageIndex int = 1 , -- 指定當前為第幾頁
@TotalPage int output , -- 返回總頁數
@totalCount int output -- 返回總記錄數
*/
SET @str
=CONCAT(
"
SET @tCount=(SELECT COUNT(1) FROM (
"
,selectSql,
"
) as t );
"
);
PREPARE stmt1 FROM @str;
EXECUTE stmt1;
--
總頁數
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);
}
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

