读书人

.net多表查询分页存储过程第一页一般

发布时间: 2013-11-15 22:28:15 作者: rapoo

.net多表查询分页存储过程,第一页正常,第二页..都出错
后台调用分页代码:

 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;
}



执行结果:第一页显示.net多表查询分页存储过程,第一页一般,第二页.都出错正常;第二页和其他页的错误直接上图:.net多表查询分页存储过程,第一页一般,第二页.都出错
跪求大神解决啊,这个问题已经困扰我两天了,上百万条数据必须得用啊,谢谢各位了.net多表查询分页存储过程,第一页一般,第二页.都出错 SQL分页存储
[解决办法]
在sql存储过程最后exec sp_executesql @strTmp 执行之前,加个print @strTmp,在SQL Server Management Studio里面看看打印出来的sql语句是什么。根据错误提示是sql语句语法错误。
[解决办法]
你写出那么麻烦的sql语句,在执行前你调试一下得到什么结果?
这个错误提示很简单,应该是你的sql语句拼写有问题.

读书人网 >C#

热点推荐