.net里使用oracle分页
public DataTable GetListForPage(int index, int pagesize, string tabname, string barCode, string sortindex, string column, ref int count)
{
int rscount = 0;
string condition = $" Panel='{barCode}' ";
if (condition.Length > 0)
{
condition = $" and {condition}";
}
//获取总页数
string strSql = $"select count(*) from {tabname} where 1=1 {condition}";
var dt = Query(strSql.ToString());
if (!Check.DataTableIsNull(dt))
{
rscount = Convert.ToInt32(dt.Rows[0][0]);
}
count = rscount;
//拼装分页查询语句
int maxpage = ((rscount + pagesize) - 1) / pagesize;//总页数等于总条数除以每页显示条数
if ((index + 1) >= maxpage)
{
index = maxpage - 1;
}
if (index < 0)
{
index = 0;
}
int start = (index * pagesize) + 1;
int end = ((index + 1) * pagesize) + 1;
string sql = $"SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT {column} FROM {tabname} where 1=1 { condition} order by { sortindex } desc) A WHERE ROWNUM < { end.ToString()} ) WHERE RN >= { start.ToString()}";
DataTable dataTable = new DataTable();
dataTable = Query(sql);
if (Check.DataTableIsNull(dataTable))
return null;
else
return dataTable;
}

浙公网安备 33010602011771号