首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

.net多表查询分页存储过程,第一页一般,第二页.都出错

2013-11-15 
.net多表查询分页存储过程,第一页正常,第二页..都出错后台调用分页代码: int currPage 1int PageSize

.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语句拼写有问题.

热点排行