組成T-SQL Page分頁查詢字串

1: public string PageSql(string Condition, int CurrentPage, int PageSize, string SortSql, string TableName, string SelectField)

   2: {
   3:     string sql = string.Empty;
   4:     int PageStart = PageSize * (CurrentPage - 1) + 1;
   5:     int PageEnd = PageStart + PageSize - 1;
   6:     if (CurrentPage <= 1)
   7:     {
   8:         string Top = PageSize > 0 ? " top " + PageSize : "";
   9:         sql = string.Format("Select " + Top + " {0} From {1} {2} {3}", SelectField, TableName, Condition, SortSql);
  10:     }
  11:     else
  12:     {
  13:         sql = "select {0} from(select {1}, ROW_NUMBER() OVER ( {2} ) as Pos from {3} {4}) as RowID where RowID.Pos between " + PageStart + " and " + PageEnd;
  14:         sql = string.Format(sql, Regex.Replace(SelectField, "([a-zA-Z0-9_]+\\.)", ""), SelectField, SortSql, TableName, Condition);
  15:     }
  16:     return sql;
  17: }
arrow
arrow
    全站熱搜

    baechang 發表在 痞客邦 留言(0) 人氣()