时间:2016-02-16 00:31 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net aspnetpager分页统计时与实际不符的解决办法】,下面是详细的讲解!
asp.net aspnetpager分页统计时与实际不符的解决办法
/// <summary>
/// 需要分页时使用,根据参数和ConditionExpress获取DataTable
/// </summary>
/// <param name="_tableName">表名</param>
/// <param name="_fieldNames">字段名集合,用逗号分开</param>
/// <param name="_OrderColumn">排序字段,用于统计有多少条记录</param>
/// <param name="IsDesc">是否倒序</param>
/// <param name="_indexColumn">自增字段名</param>
/// <param name="_currentPage">当前页</param>
/// <param name="pageSize">页大小</param>
/// <param name="_rowsCount">总记录数</param>
/// <returns>获取到的DataTable</returns>
public static DataTable GetDataTable(string _tableName, string _fieldNames, string _OrderColumn, bool IsDesc, string _indexColumn, int _currentPage, int pageSize, string conditionExpress, ref int _rowsCount)
{
using (SqlConnection conn=new SqlConnection(connectionString))
{
string whereStr=" where 1=1 ";
string sort=IsDesc ? " desc" : " asc";
string sqlStr=" from " + _tableName;
//排序字段
string orderStr=" order by " + _OrderColumn + sort;
if (_OrderColumn !=_indexColumn)
orderStr +="," + _indexColumn + sort;
if (conditionExpress !=string.Empty)
{
whereStr +=conditionExpress;
}
sqlStr +=whereStr;
//取得符合条件的数据总数
SqlCommand cmd=new SqlCommand("select count(" + _OrderColumn + ") " + sqlStr, conn);
conn.Open();
try
{
_rowsCount=(int)cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
if (_currentPage > _rowsCount) _currentPage=_rowsCount;
if (_currentPage > 1)
{
if (IsDesc)
sqlStr +=" and " + _OrderColumn + " < (select MIN(" + _OrderColumn + ") from ";
else
sqlStr +=" and " + _OrderColumn + " > (select MAX(" + _OrderColumn + ") from ";
sqlStr +="(select top " + (pageSize * (_currentPage - 1)) + " " + _OrderColumn + " from " + _tableName + whereStr + orderStr + ") as t)";
}
sqlStr="select top " + pageSize + " " + _fieldNames + sqlStr + orderStr;
try
{
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(sqlStr, conn);
da.Fill(ds);
return ds.Tables[0];
}
catch (Exception EX)
{
throw new Exception(EX.Message);
}
}
}
关于asp.net aspnetpager分页统计时与实际不符的解决办法的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 【asp】asp.net开发中常见公共捕获异常方式总结(
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
