我看帮助文档的时候说RecordCount这个属性是当页面第一次加载时,应以编程方式将从存储过程或Sql语句中返回的数据表中所有要分页的记录的总数赋予该属性
应该赋给它使用的行才对 但是赋给它的却是第一行的的一列 为什么啊 我用的是存储过程:
这样的:
CREATE procedure pro_order
(@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(OrderID) from Orders
else
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select OrderID from Orders order by RequiredDate desc
select O.* from Orders O,@indextable t where O.OrderID=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
end
set nocount offGO
应该赋给它使用的行才对 但是赋给它的却是第一行的的一列 为什么啊 我用的是存储过程:
这样的:
CREATE procedure pro_order
(@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(OrderID) from Orders
else
begin
declare @indextable table(id int identity(1,1),nid int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(nid) select OrderID from Orders order by RequiredDate desc
select O.* from Orders O,@indextable t where O.OrderID=t.nid
and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
end
set nocount offGO
if(@docount=1)
select count(OrderID) from Orders
else
所以这个存储过程等于是有两个作用,当然LZ可以自己稍微改一下,只要自己理解就行,不一定全要用那一套的
SqlConnection dbconnection = new SqlConnection(con);
SqlCommand cmd = new SqlCommand("pro_order",dbconnection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@pagesize", 1);
cmd.Parameters.Add("@pageindex", 1);
cmd.Parameters.Add("@docount", true);
dbconnection.Open();
this.AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
dbconnection.Close();
SetDataBind();1.我在用这样的语句的时候 提示:
警告 1 “System.Data.SqlClient.SqlParameterCollection.Add(string, object)”已过时:“Add(String parameterName, Object value) has been deprecated. Use AddWithValue(String parameterName, Object value). http://go.microsoft.com/fwlink/?linkid=14202” D:\WebSite1\AspNetPager\Northwind_SQL_Pager\Default.aspx.cs 22 13 D:\...\Northwind_SQL_Pager\说是过时了2.还有就是用这句的时候 cmd.CommandText = CommandType.StoredProcedure;
提示:错误 4 无法将类型“System.Data.CommandType”隐式转换为“string” D:\WebSite1\AspNetPager\Northwind_SQL_Pager\Default.aspx.cs 37 27 D:\...\Northwind_SQL_Pager\
3.还有就是想这样的cmd.Parameters.Add("@pagesize", 1);语句根本在Add中就没有这样的参数列表啊??