构造获取分页操作SQL语句
2011-11-05 12:41
381 查看
构造获取分页操作SQL语句
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引,优化分页提取方式)
/// </summary>
/// <param name="tblName">操作表名称</param>
/// <param name="fldName">排序的索引字段</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="totalRecord">总记录数</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
int PageIndex,
int PageSize,
int totalRecord,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
string rtnFields = "*";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="unionCondition">用于连接的条件,例如: LEFT JOIN UserInfo u ON (u.UserID = b.UserID)</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式,0升序,1为降序</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
string unionCondition,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL_TOP(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += strWhere + " ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += strWhere + " ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="sort">排序表达式</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL_sort(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string sort,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
if (sort != "") sort = " ORDER BY " + sort;
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";
strSQL += strOldWhere + sort;
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";
strSQL += strOldWhere + sort;
}
}
else // 异常处理
{
throw new DataException("未指定主索引排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引,优化分页提取方式)
/// </summary>
/// <param name="tblName">操作表名称</param>
/// <param name="fldName">排序的索引字段</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="totalRecord">总记录数</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
int PageIndex,
int PageSize,
int totalRecord,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
string rtnFields = "*";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="unionCondition">用于连接的条件,例如: LEFT JOIN UserInfo u ON (u.UserID = b.UserID)</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式,0升序,1为降序</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL(string tblName,
string fldName,
string unionCondition,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + "ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + "ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + unionCondition + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL_TOP(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += strWhere + " ORDER BY " + fldName + " ASC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += strWhere + " ORDER BY " + fldName + " DESC";
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
}
}
else // 异常处理
{
throw new DataException("未指定任何排序类型。0升序,1为降序");
}
return strSQL;
}
/// <summary>
/// 获取分页操作SQL语句(对于排序的字段必须建立索引)
/// </summary>
/// <param name="tblName">操作表名</param>
/// <param name="fldName">操作索引字段名称</param>
/// <param name="PageIndex">当前页</param>
/// <param name="PageSize">每页显示记录数</param>
/// <param name="rtnFields">返回字段集合,中间用逗号格开。返回全部用“*”</param>
/// <param name="OrderType">排序方式(0升序,1为降序)</param>
/// <param name="sort">排序表达式</param>
/// <param name="strWhere">检索的条件语句,不需要再加WHERE关键字</param>
/// <returns></returns>
public static string ConstructSplitSQL_sort(string tblName,
string fldName,
int PageIndex,
int PageSize,
string rtnFields,
int OrderType,
string sort,
string strWhere)
{
string strSQL = "";
string strOldWhere = "";
// 构造检索条件语句字符串
if (strWhere != "")
{
// 去除不合法的字符,防止SQL注入式攻击
strWhere = strWhere.Replace("'", "''");
strWhere = strWhere.Replace("--", "");
strWhere = strWhere.Replace(";", "");
strOldWhere = " AND " + strWhere + " ";
strWhere = " WHERE " + strWhere + " ";
}
if (sort != "") sort = " ORDER BY " + sort;
// 升序操作
if (OrderType == 0)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " >= ( SELECT MAX(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " ASC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " ASC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " > ( SELECT MAX(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";
strSQL += strOldWhere + sort;
}
}
// 降序操作
else if (OrderType == 1)
{
if (PageIndex == 1)
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
//strSQL += "WHERE (" + fldName + " <= ( SELECT MIN(" + fldName + ") FROM (SELECT TOP 1 " + fldName + " FROM " + tblName + strWhere + " ORDER BY " + fldName + " DESC ) AS T )) ";
//strSQL += strOldWhere + "ORDER BY " + fldName + " DESC";
strSQL += strWhere + sort;
}
else
{
strSQL += "SELECT TOP " + PageSize + " " + rtnFields + " FROM " + tblName + " ";
strSQL += "WHERE (" + fldName + " < ( SELECT MIN(" + fldName + ") FROM (SELECT TOP " + ((PageIndex - 1) * PageSize) + " " + fldName + " FROM " + tblName + strWhere + sort + " ) AS T )) ";
strSQL += strOldWhere + sort;
}
}
else // 异常处理
{
throw new DataException("未指定主索引排序类型。0升序,1为降序");
}
return strSQL;
}
相关文章推荐
- 构造获取分页操作SQL语句
- 实现用SQL语句分页查询操作hibernate
- ASP构造大数据量的分页SQL语句
- 使用标准SQL语句实现分页操作(Oracle)
- 简单的实现分页获取数据的sql语句
- 在配置文件中获取数据源,然后在hibernate中用sql语句进行查询操作
- ASP构造大数据量的分页SQL语句
- SQL分页语句,.NET中获取字符串的MD5码
- ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
- 巧用C# Split()函数获取SQL语句中操作字段
- ASP构造大数据量的分页SQL语句。
- IBatisNet之获取和操作SQL语句
- 巧用C# Split()函数获取SQL语句中操作字段
- 【转】ASP构造大数据量的分页SQL语句
- IBatisNet之获取和操作SQL语句
- ASP构造大数据量的分页SQL语句
- IBatisNet之获取和操作SQL语句
- C#将SQL语句转换为分页SQL和获取记录数SQL
- IBatisNet之获取和操作SQL语句
- 腾讯云图片鉴黄集成到C# SQL Server 怎么在分页获取数据的同时获取到总记录数 sqlserver 操作数据表语句模板 .NET MVC后台发送post请求 百度api查询多个地址的经纬度的问题 try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后? js获取某个日期