c#中如何延迟加载DataGridView

本文关键字:延迟加载 DataGridView | 更新日期: 2023-09-27 17:49:33

我想从sql server检索大数据。我希望它逐行加载并显示在DataGridView中。就像我执行Sql脚本在Sql server管理工作室2005。我怎么做到的?!

c#中如何延迟加载DataGridView

使用这个查询来分页

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。还有进度指示器。

查看这些链接:

  1. http://geeknotes.wordpress.com/2007/09/19/using-backgroundworker-to-update-status/
  2. 使用后台Worker -在递归方法的进度上更新进度条

它包含使用Backgroundworker显示目录。