c#中如何延迟加载DataGridView
本文关键字:延迟加载 DataGridView | 更新日期: 2023-09-27 17:49:33
我想从sql server检索大数据。我希望它逐行加载并显示在DataGridView中。就像我执行Sql脚本在Sql server管理工作室2005。我怎么做到的?!
使用这个查询来分页
DECLARE @PageIndex int=1
DECLARE @PageSize int=10
DECLARE @StartRow int
DECLARE @EndRow int
SET @StartRow = (@PageSize * (@PageIndex - 1)) + 1
SET @EndRow = @PageSize * @PageIndex + 1
SET NOCOUNT ON;
WITH ArticleSearch AS
(
SELECT
ROW_NUMBER() OVER
(
-- Dynamic sorting
ORDER BY tablename.fieldname
) AS RowNumber, *
FROM tablename
)
-- Statement that executes the CTE
SELECT *
FROM
ArticleSearch a
WHERE
a.RowNumber BETWEEN @StartRow AND @EndRow - 1
ORDER BY
a.RowNumber
您可以传递pageindex作为参数来获取您想要显示的页面和每个页面中总记录的页面大小
您可以使用SqlDataReader
来做到这一点,我很确定它在SSMS中使用。每次从读取器读取一条记录(或一批记录)时,都将其显示在用户界面中。
阅读完毕后不要忘记关闭阅读器
你可以尝试使用Backgroundworker类加载数据。在Progress更新调用中,你可以更新DataGridview。还有进度指示器。
查看这些链接:
- http://geeknotes.wordpress.com/2007/09/19/using-backgroundworker-to-update-status/
- 使用后台Worker -在递归方法的进度上更新进度条
它包含使用Backgroundworker显示目录。