gpt4 book ai didi

c# - 如何使用带SQL的PagedDataSource进行分页?

转载 作者:搜寻专家 更新时间:2023-10-30 22:02:51 26 4
gpt4 key购买 nike

我不明白当您需要知道总行数以使分页工作时,您如何只能从数据库中获取所需的行数。

我的意思是:我按照这个例子: http://www.c-sharpcorner.com/uploadfile/rizwan328/datalist-custom-paging-in-Asp-Net-using-C-Sharp/

但是我没有使用数据表,而是有一个数据库。

我像这样从数据库中获取新闻,这从我的新闻表中获取所有新闻:

List<News> news = News.GetNews();

public static List<News> GetNews(){
List<News> news = new List<News>();
using (SqlConnection conn = new SqlConnection(CONNSTRING)) {
SqlCommand cmd = new SqlCommand("SELECT * FROM News_news ORDER BY date DESC", conn);

从所有新闻项中获取所有数据。

然后我创建一个 PagedDataSource:

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = news;
objPds.AllowPaging = true;
objPds.PageSize = numRows;
//Set the current page
objPds.CurrentPageIndex = CurrentPage;

//Set the buttons

将数据放入将在 aspx 页面上显示前 5 项的转发器

repeater1.DataSource = objPds;
repeater1.DataBind();

像这样,我有一个分页首页,显示总页数和当前页,当我单击下一页按钮时,我会重新做一遍。

但我知道这是不正确的,因为我总是得到所有的消息,然后丢弃我不需要的消息。但是请问,我需要怎么做才能只获得所需的新闻条目?

我是否需要先计算表格中的行数?

最佳答案

要使用PagedDataSource,查询时会返回所有记录,但您可以使用持久化数据存储(Session和ViewState)来存储数据集,这样每次页面请求就不必再次访问数据库。

如果您只想拉回您正在查看的页面的记录,据我所知,您将不得不推出自己的分页解决方案。不久前我遇到了对自己的分页解决方案的需求,这是我问的一个 SO 问题,它帮助我完成了我需要的事情,Paging choice, on database or in the web application .

关于c# - 如何使用带SQL的PagedDataSource进行分页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8242057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com