2011-04-07 35 views
3

我想要從sql server中檢索大數據。我希望它逐行加載並顯示在DataGridView中。就像我在Sql服務器管理工​​作室2005中執行Sql腳本一樣。我該怎麼做?!如何在C中的DataGridView中進行延遲加載#

+0

你的意思是分頁? – Nighil 2011-04-07 04:37:53

+0

不,這樣的:http://img690.imageshack.us/i/loadingresult.png/。在加載數據過程中,我希望它在DataGridView上顯示可用數據 – dungnn07 2011-04-07 04:40:40

回答

0

使用這種查詢分頁

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作爲參數,以獲得您想要顯示的頁面和頁面大小總記錄

+0

不,我不想使用分頁。我等待數據必須加載到dataGridView上,並且在加載過程尚未完成時,可用數據必須顯示在gid上。 – dungnn07 2011-04-07 04:56:23

+0

然後您必須通過分頁查詢每一行並將每行逐行添加到datagrid – Nighil 2011-04-07 05:07:14

+0

但是,這意味着數據必須在發佈到DataGridView之前加載。我希望當所有數據尚未加載完成時,加載的可用數據必須顯示在上面。 – dungnn07 2011-04-07 05:41:36

0

你可以使用一個SqlDataReader這樣做,我很確定它在SSMS中使用。每次您從閱讀器讀取記錄(或一批記錄)時,都會在用戶界面中顯示它。

不要忘記在閱讀完成後關閉閱讀器。