/// <summary>GetList分頁
///
/// </summary>
/// <param name="fileds">選擇字段</param>
/// <param name="order">排序字段</param>
/// <param name="ordertype">排序方式</param>
/// <param name="PageSize">頁大小</param>
/// <param name="PageIndex">頁索引</param>
/// <param name="strWhere">條件</param>
/// <returns></returns>
public DataSet GetListByNaswer(string fileds, string order, string ordertype, int PageSize, int PageIndex, string strWhere)
{
// select top 每頁顯示的記錄數 * from topic where id not in (select top (當前的頁數-1)×每頁顯示的記錄數 id from topic order by id desc) order by id desc
string sql = Get_FenYeSQL(fileds, order, ordertype, PageSize, PageIndex, strWhere);
Database db = DatabaseFactory.CreateDatabase();
DbCommand dbCommand = db.GetSqlStringCommand(sql);
return db.ExecuteDataSet(dbCommand);
}
/// <summary>分頁函數
///
/// </summary>
/// <param name="tblname">表名</param>
/// <param name="fileds">字段名</param>
/// <param name="order">排序字段</param>
/// <param name="ordertype">排序類型:asc或者desc</param>
/// <param name="PageSize">頁大小</param>
/// <param name="PageIndex">頁索引</param>
/// <param name="strWhere">條件</param>
/// <returns></returns>
private static string Get_FenYeSQL(string fileds, string order, string ordertype, int PageSize, int PageIndex, string strWhere)
{
// select top 每頁顯示的記錄數 * from topic where id not in (select top (當前的頁數-1)×每頁顯示的記錄數 id from topic order by id desc) order by id desc
string sql = "";
if (PageIndex == 1)
{
// 第一頁
if (strWhere == "")
{
//條件為空
sql = "select top " + PageSize + " " + fileds + " from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid order by " + order + " " + ordertype;
}
else
{
//條件不為空
sql = "select top " + PageSize + " " + fileds + " from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid where " + strWhere + " order by " + order + " " + ordertype;
}
}
else
{
// 不是第一頁
if (strWhere == "")
{
//條件為空
sql = "select top " + PageSize + " " + fileds + " from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid where cms_exam_User_Ks_Details.id not in (select top " + (PageIndex - 1) * PageSize + " cms_exam_User_Ks_Details.id from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid order by " + order + " " + ordertype + ") order by " + order + " " + ordertype;
}
else
{
//條件不為空
sql = "select top " + PageSize + " " + fileds + " from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid where " + strWhere + " and cms_exam_User_Ks_Details.id not in (select top " + (PageIndex - 1) * PageSize + " cms_exam_User_Ks_Details.id from cms_exam_User_Ks_Details left join cms_exam_Answer on cms_exam_User_Ks_Details.questionid=cms_exam_Answer.questionid where " + strWhere + " order by " + order + " " + ordertype + ") order by " + order + " " + ordertype;
}
}
return sql;
}
//使用方法 參數里必須指定哪個表的參數
repSxlx.DataSource = new DAL.Exam_User_Ks_DetailsDAL().GetListByNaswer("*", "cms_exam_User_Ks_Details.id", "asc", anp.PageSize, anp.CurrentPageIndex, GetCond());
repSxlx.DataBind();