2010-02-11 40 views
1

我正在使用從數據源綁定數據的DataGrid(.NET 1.1),該數據源獲取將近3000行和25列。由於數據量大,將數據加載到datagrid需要大約3分鐘的時間。我想首先加載50條記錄,然後接下來的50,然後在下一個50 ...等等...在DataGrid上加載數據

我怎樣才能做到這一點?我試着使用分頁選項,但它加載整個記錄..

有什麼建議嗎?

+0

您是否檢查查詢的性能?只要確保! – decompiled 2010-02-11 20:29:19

+0

嗨實際上,我從4個查詢中獲取數據源的值。每個查詢都會將數據提取到某些特定的列中...我已經看到這些查詢執行得很好 – msbyuva 2010-02-11 21:13:00

回答

0

這是您正在尋找的功能嗎?

Me.DataGrid1.DataSource = DataRange(5, 25, DataSet1.Tables(0)) 

Private Function DataRange(ByVal Min As Integer, ByVal Max As Integer, ByRef SourceTable As DataTable) As DataTable 
    Dim TempTable As DataTable = SourceTable.Clone 
    If Max > SourceTable.Rows.Count Then 
     Max = SourceTable.Rows.Count 
    End If 
    For i As Integer = (Min - 1) To (Max - 1) 
     TempTable.ImportRow(SourceTable.Rows(i)) 
    Next 
    Return TempTable 
    End Function 

隨着反編譯說,確保緩慢是不是在您的查詢。

+0

不是真的.....我正在尋找一些將動態加載50行先行,然後是50行...有沒有什麼辦法可以實現自定義分頁? – msbyuva 2010-02-11 23:06:00

+0

您是否試圖從數據庫一次加載50行到數據集或每次加載50行從數據集到形成?這是Winforms還是ASP.NET?在上面的評論中,您提到了填充來自4個不同查詢的列。你能給這個代碼的樣本嗎?你爲什麼不加入數據庫中的所有數據? – bluecoder 2010-02-12 00:43:42

+0

我是從不同的數據庫查詢和這些值的條件彼此不同...我使用ASP.NET ..我想從數據庫加載到數據集.. – msbyuva 2010-02-12 01:07:16