求一个利用存储过程+datalist分页的C#的例子(要有源码) 同上 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调用分页存储过程函数/// <summary> /// 分页显示程序 /// </summary>aa /// <param name="tablename">查询用的表名</param> /// <param name="pagesize">每页显示的记录数</param> /// <param name="currentpage">要显示的页数</param> /// <param name="where">查询的条件</param> /// <param name="columnorder">排序的列</param> /// <returns>总记录数</returns> /// <returns>总页数</returns> public DataSet DsCutPage(string tablename,int pagesize,int currentpage,string where,string columnorder,out double recordCount,out double pageCount) { SqlCommand cmd = new SqlCommand("cutpage_record",sqlConn_R); cmd.CommandType = CommandType.StoredProcedure; SqlParameter p7 = cmd.Parameters.Add("@RecordCount",SqlDbType.Int); p7.Direction = ParameterDirection.Output; SqlParameter p8 = cmd.Parameters.Add("@pageCount",SqlDbType.Int); p8.Direction = ParameterDirection.Output; SqlParameter p = cmd.Parameters.Add("@QueryStr",SqlDbType.NVarChar,100); p.Value = tablename; SqlParameter p1 = cmd.Parameters.Add("@PageSize",SqlDbType.Int); p1.Value = pagesize; SqlParameter p2 = cmd.Parameters.Add("@PageCurrent",SqlDbType.Int); p2.Value = currentpage; SqlParameter p3 = cmd.Parameters.Add("@FdShow",SqlDbType.NVarChar,1000); p3.Value = "*"; SqlParameter p5 = cmd.Parameters.Add("@WhereStr",SqlDbType.NVarChar,4000); p5.Value = where; SqlParameter p6 = cmd.Parameters.Add("@FdOrder",SqlDbType.NVarChar,100); p6.Value = columnorder; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); recordCount = double.Parse(da.SelectCommand.Parameters["@RecordCount"].Value.ToString()); pageCount = double.Parse(da.SelectCommand.Parameters["@PageCount"].Value.ToString()); return ds; }分页存储过程CREATE proc cutpage_record@RecordCount int output, --返回总记录数@QueryStr nvarchar(100),--表名、视图名、查询语句@PageSize int, --每页的大小(行数)@PageCurrent int, --要显示的页@FdShow nvarchar (1000), --要显示的字段列表@WhereStr nvarchar (4000),@FdOrder nvarchar(100), --排序@PageCount int output --返回总页数asdeclare@sql nvarchar(4000)set @sql = ''if @WhereStr = '' begin set @WhereStr = '1=1'endif @FdShow = '' begin set @FdShow = '*'enddeclare @tsql nvarchar (200)set @tsql=N'select @RecordCount = count(*) from ' + @QueryStr + ' where ' + @WhereStrexec sp_executesql @tsql,N'@RecordCount int output',@RecordCount outputset @pageCount=ceiling(@recordCount*1.0/@pageSize)if @PageCurrent = 1 begin set @sql = 'select top ' + cast(@PageSize as nvarchar(3)) + ' ' + @FdShow + ' from ' + @QueryStr + ' where ' + @WhereStr +' order by ' + @FdOrder + ' desc'endelse begin set @sql = 'select top ' + cast(@PageSize as nvarchar(3)) + ' ' + @FdShow + ' from ' + @QueryStr + ' where ' + @WhereStr + ' and ' + @FdOrder + '< ( select min(' + @FdOrder + ') from (select top ' + cast(@PageSize*(@PageCurrent-1) as nvarchar(10)) + ' ' + @FdOrder + ' from ' + @QueryStr + ' where ' + @WhereStr + ' order by ' + @FdOrder + ' desc'+ ') as t) order by ' + @FdOrder +' desc'end --print @sqlexecute(@sql)GO 请教大师,.net网站上传图片如何压缩成适用于web的图片大小呢? 来者有分,这样的图片播放器用JS实现,该如何实现,或者有没有相关资源? 数据表的字段 求助,在服务器端的代码里面如何设置 Lable 控件的背景颜色 关于Dreamweaver自动提示的一个问题 关于网站更新接口的制作 自定义BasePage类的问题! 如何连接受密码保护的access数据库呢 关于javascript的几个问题? DropDownList控件,通过数据绑定以后,如何设置默认值?! 求一个好的开源的网上商城源码 Web part在拖动、删除或关闭的时候可否不再请求服务器
/// <summary>
/// 分页显示程序
/// </summary>aa
/// <param name="tablename">查询用的表名</param>
/// <param name="pagesize">每页显示的记录数</param>
/// <param name="currentpage">要显示的页数</param>
/// <param name="where">查询的条件</param>
/// <param name="columnorder">排序的列</param>
/// <returns>总记录数</returns>
/// <returns>总页数</returns>
public DataSet DsCutPage(string tablename,int pagesize,int currentpage,string where,string columnorder,out double recordCount,out double pageCount)
{
SqlCommand cmd = new SqlCommand("cutpage_record",sqlConn_R);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p7 = cmd.Parameters.Add("@RecordCount",SqlDbType.Int);
p7.Direction = ParameterDirection.Output; SqlParameter p8 = cmd.Parameters.Add("@pageCount",SqlDbType.Int);
p8.Direction = ParameterDirection.Output; SqlParameter p = cmd.Parameters.Add("@QueryStr",SqlDbType.NVarChar,100);
p.Value = tablename; SqlParameter p1 = cmd.Parameters.Add("@PageSize",SqlDbType.Int);
p1.Value = pagesize; SqlParameter p2 = cmd.Parameters.Add("@PageCurrent",SqlDbType.Int);
p2.Value = currentpage; SqlParameter p3 = cmd.Parameters.Add("@FdShow",SqlDbType.NVarChar,1000);
p3.Value = "*"; SqlParameter p5 = cmd.Parameters.Add("@WhereStr",SqlDbType.NVarChar,4000);
p5.Value = where; SqlParameter p6 = cmd.Parameters.Add("@FdOrder",SqlDbType.NVarChar,100);
p6.Value = columnorder; DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd; da.Fill(ds); recordCount = double.Parse(da.SelectCommand.Parameters["@RecordCount"].Value.ToString());
pageCount = double.Parse(da.SelectCommand.Parameters["@PageCount"].Value.ToString()); return ds;
}
分页存储过程
CREATE proc cutpage_record
@RecordCount int output, --返回总记录数
@QueryStr nvarchar(100),--表名、视图名、查询语句
@PageSize int, --每页的大小(行数)
@PageCurrent int, --要显示的页
@FdShow nvarchar (1000), --要显示的字段列表
@WhereStr nvarchar (4000),
@FdOrder nvarchar(100), --排序
@PageCount int output --返回总页数
as
declare
@sql nvarchar(4000)
set @sql = ''
if @WhereStr = '' begin
set @WhereStr = '1=1'
end
if @FdShow = '' begin
set @FdShow = '*'
enddeclare @tsql nvarchar (200)set @tsql=N'select @RecordCount = count(*) from ' + @QueryStr + ' where ' + @WhereStr
exec sp_executesql @tsql,N'@RecordCount int output',@RecordCount output
set @pageCount=ceiling(@recordCount*1.0/@pageSize)
if @PageCurrent = 1 begin
set @sql = 'select top ' + cast(@PageSize as nvarchar(3)) + ' ' + @FdShow + ' from ' + @QueryStr + ' where ' + @WhereStr +' order by ' + @FdOrder + ' desc'
end
else begin
set @sql = 'select top ' + cast(@PageSize as nvarchar(3)) + ' ' + @FdShow + ' from ' + @QueryStr + ' where ' + @WhereStr + ' and ' + @FdOrder + '< ( select min(' + @FdOrder + ') from (select top ' + cast(@PageSize*(@PageCurrent-1) as nvarchar(10)) + ' ' + @FdOrder + ' from ' + @QueryStr + ' where ' + @WhereStr + ' order by ' + @FdOrder + ' desc'+ ') as t) order by ' + @FdOrder +' desc'
end
--print @sql
execute(@sql)
GO