.net多表查询分页存储过程,第一页正常,第二页..都出错
后台调用分页代码:
DAL层方法调用存储过程代码
执行结果:第一页显示
正常;第二页和其他页的错误直接上图:
跪求大神解决啊,这个问题已经困扰我两天了,上百万条数据必须得用啊,谢谢各位了
int currPage = 1;
int PageSize =40;
string tabeName = "TableOrders as a left join Customer as b on a.CustomerID=b.CustomerID left join UseCompanyIp as c on a.OrderID=c.OrderID left join Staff as e on a.StaffID=e.StaffID";
string strFide = "(a.RenewalFee+a.ModificationCost) AS moneycount,a.PaymentCycle,a.ModificationCost,a.SerialNumber,a.state,a.Technology,a.RenewalStatus,a.RenewalFee,a.OldExpirationDate,a.RenewalDate,a.OrderID,a.OrderDate,a.ExpirationDate,a.Remarks,a.StaffID,a.CustomerID,a.PackageID,a.ProductID,b.CustomerName,b.Taofc,c.IpAddress,e.StaffName";
string strSortKey = "a.OrderID";
string strSortField = "a.ExpirationDate ";
public void Bind()
{
int pageCount;
int RecordCount;
Repeater1.DataSource = tableorder.GetPagetable(tabeName, strFide, PageSize,currPage, out pageCount, out RecordCount, strSortField, strSortKey);
Repeater1.DataBind();
this.AspNetPager1.RecordCount = RecordCount;
this.AspNetPager1.CurrentPageIndex = currPage;
this.AspNetPager1.PageSize = PageSize;
}DAL层方法调用存储过程代码
public DataTable GetPagetable(string TableNames, string Fields, int PageSize, int page, out int pageCount, out int RecordCount, string fldSort, string ID)
{
pageCount = 0;
RecordCount = 0;
DataTable datatable = new DataTable();
using (SqlConnection conn = new SqlConnection(SQLHelper.scon))
{
SqlCommand objcmd = new SqlCommand("proc_ListPage", conn);
objcmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] para ={
new SqlParameter("@tblName",SqlDbType.VarChar,-1),
new SqlParameter("@fldName",SqlDbType.VarChar,-1),
new SqlParameter("@pageSize",SqlDbType.Int),
new SqlParameter("@page",SqlDbType.Int),
new SqlParameter("@pageCount",SqlDbType.Int),
new SqlParameter("@Counts",SqlDbType.Int),
new SqlParameter("@fldSort",SqlDbType.VarChar,-1),
new SqlParameter("@Sort",SqlDbType.Bit),
new SqlParameter("@ID",SqlDbType.VarChar,-1),
};
para[0].Value = TableNames;
para[1].Value = Fields;
para[2].Value = PageSize;
para[3].Value = page;
para[4].Value = pageCount;
para[4].Direction = ParameterDirection.Output;
para[5].Value = RecordCount;
para[5].Direction = ParameterDirection.Output;
para[6].Value = fldSort;
para[7].Value = 1;
para[8].Value = ID;
objcmd.Parameters.AddRange(para);
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(objcmd);
adapter.Fill(datatable);
RecordCount = Convert.ToInt32(objcmd.Parameters["@Counts"].Value);
pageCount = Convert.ToInt32(objcmd.Parameters["@pageCount"].Value);
conn.Close();
conn.Dispose();
}
return datatable;
}执行结果:第一页显示
正常;第二页和其他页的错误直接上图:
跪求大神解决啊,这个问题已经困扰我两天了,上百万条数据必须得用啊,谢谢各位了

...全文
相关推荐
asp.net mvc多表查询的方法
我在网上找了很多资料都没有办法,现在我告诉你们如何做一个多表查询,可能会比较麻烦,那就是先做一个视图,然后对视图查询..这样的办法不算高明,但是我暂时还没有资料找到如何多表查询
ADO.NET分页封装[支持多表连接查询分页]-代码实现
教学示范代码 ADO.NET分页封装[支持多表连接查询分页]-代码实现
SQL通用存储过程分页,支持多表联合
以前用.net写分页存储过程时老是一张表就要写一个procedure.很忙烦.后来有空就整合了一下,做了一个通用的sql分页存储,支持多表联合查询分页.写的不好的地方,希望大鸟们多多指导.使的查询速度更快.
数据库分页ASP.NET分页ASP.NET分页
asp.net中数据库分页,存储过程查询,适用性强,适合各种数据库,只要传入表名及其他相关条件等就可以很轻松的实现分页查询,提高效率。
asp.net 分页存储过程实例剖析心得
1.开始还原 下面先看一下原来的分页存储过程。 代码如下: ALTER PROCEDURE [dbo].[sp_Sql_Paging] ( @SqlDataTable NVARCHAR(4000), — 表名 @PrimaryKey NVARCHAR(4000), — 主键名称 @Fields NVARCHAR(4000), — 要返回的字段 @pageSize INT, — 页尺寸 @pageIndex INT, — 页码 @recordCount INT OUTPUT, — 记录总数 @strOrderBy NVARCHAR(4000), — 排序 @strWhere NVARCHAR(


