Как Ленивая загрузка в DataGridView в C # - PullRequest
3 голосов
/ 07 апреля 2011

Я хочу получить большие данные с сервера SQL.Я хочу, чтобы он загружался построчно и отображался в DataGridView.Как будто я выполняю Sql Script в Sql server management studio 2005. Как мне это сделать?!

Ответы [ 3 ]

0 голосов
/ 07 апреля 2011

Вы можете использовать SqlDataReader для этого, я вполне уверен, что он используется в SSMS.Каждый раз, когда вы читаете запись (или группу записей) из устройства чтения, вы отображаете ее в пользовательском интерфейсе.

Не забудьте закрыть устройство чтения после завершения чтения.

0 голосов
/ 07 апреля 2011

Вы можете попробовать загрузить данные, используя класс Backgroundworker.А в вызове обновления Progress вы можете обновить DataGridview.Также индикатор хода выполнения.

Проверьте следующие ссылки:

  1. http://geeknotes.wordpress.com/2007/09/19/using-backgroundworker-to-update-status/
  2. Использование фонового рабочего - обновите ProgressBar о ходе выполнения рекурсивногоМетод

Содержит отображение каталогов с использованием Backgroundworker.

0 голосов
/ 07 апреля 2011

используйте этот запрос для подкачки страниц

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 в качестве аргумента, чтобы получить страницу, которую вы хотите показать, и размер страницы для общего количества записей на каждой странице

...