查询结果进行分页问题?
请问使用什么什么控件进行显示查询得到的数据?怎么进行分页呢?
能否给个例子?
谢谢!~ --------------------编程问答-------------------- gridview,datagrid什么的,都自带分页 --------------------编程问答-------------------- gridview自带分页,还可逆和顺排序!! --------------------编程问答-------------------- GridView是自带分页,不过很消耗资源
Datalist,repeater都可以显示的
大型项目的话,最好用第三方控件
一般用存储过程
ALTER PROCEDURE xp_mypage
@tablename varchar(30),//表名
@mkey varchar(20),//字段名
@pagesize int,//要分页的数
@pagenum int,//页的索引
@where varchar(200)
AS
declare @strSQL varchar(500);
if (@where='') //判断是否有多个字段限制
begin
set @strSQL='select top ' +cast(@pagesize as varchar(20)) +
' * from '+@tablename+'
where '+@mkey+
' not in (select top '+cast(((@pagenum-1)*@pagesize) as varchar(20))
+' stuid from '+@tablename+' order by '+@mkey+
' asc) order by '+@mkey+' asc';
end
else
begin
set @strSQL='select top '+cast(@pagesize as varchar(20))+
' * from '+@tablename
+' where '+@mkey+' not in
(select top '+cast((@pagesize*(@pagenum-1)) as varchar(20))+
' '+@mkey+' from '+@tablename+' where '+@where+' order by '+@mkey+' asc)
and '+@where+' order by '+@mkey+' asc';
end
--print (@strSQL)
exec(@strSQL);
GO --------------------编程问答-------------------- aspnetpager进行分页吧,你到他们网站上去下载吧,那里面的存储过程在他网站上可以自动生成,很方便哈。。。 --------------------编程问答-------------------- SQL 2005
--------------------编程问答-------------------- DataView,DataList等
WITH 临时表名 AS
(
SELECT 字段,ROW_NUMBER() OVER (ORDER BY 排序条件) AS 'RowNumber'
FROM 表名
WHERE 搜索条件
)
SELECT 字段 FROM 临时表名 WHERE RowNumber BETWEEN 页码下限 AND 页码上限;
下面是一个分页的例子,请参考:
protected System.Web.UI.WebControls.HyperLink lnkNext;
protected System.Web.UI.WebControls.HyperLink lnkPrev;
protected System.Web.UI.WebControls.Label lblCurPage;
protected System.Web.UI.WebControls.DataList dlPager;
private void Page_Load(object sender, System.EventArgs e)
{
//页面初试化时进行数据绑定
if(!IsPostBack)
DataListDataBind();
}
private void DataListDataBind()
{
//定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionSqlServer"].ToString());
//创建数据适配器对象
SqlDataAdapter da = new SqlDataAdapter("select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy from Employees",conn);
//创建DataSet对象
DataSet ds = new DataSet();
try
{
//填充数据集
da.Fill(ds,"testTable");
//创建分页类
PagedDataSource objPage = new PagedDataSource();
//设置数据源
objPage.DataSource = ds.Tables["testTable"].DefaultView;
//允许分页
objPage.AllowPaging = true;
//设置每页显示的项数
objPage.PageSize = 5;
//定义变量用来保存当前页索引
int CurPage;
//判断是否具有页面跳转的请求
if (Request.QueryString["Page"] != null)
CurPage=Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage=1;
//设置当前页的索引
objPage.CurrentPageIndex = CurPage-1;
//显示状态信息
lblCurPage.Text = "当前页:第" + CurPage.ToString()+"页";
//如果当前页面不是首页
if (!objPage.IsFirstPage)
//定义"上一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
//如果当前页面不是最后一页
if (!objPage.IsLastPage)
//定义"下一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);
//进行数据绑定
dlPager.DataSource = objPage;
dlPager.DataBind();
}
catch(Exception error)
{
//输出异常信息
Response.Write(error.ToString());
}
}
--------------------编程问答-------------------- http://www.webdiyer.com/AspNetPager/utility/sqlspgen.aspx --------------------编程问答--------------------
UP
补充:.NET技术 , ASP.NET