2010-10-05 45 views
0

在運行時,我的應用程序從MSSQL服務器獲取數據,並且有一個將數據拉入我的自定義數據集的對象。 下面的代碼:直到的foreach開始工作自定義數據集性能問題

public static void FillRegionData(int country, RegionDataTable DestinationTable) 
{ 
    DestinationTable.Clear(); 
    using (selectRegionsListTableAdapter _taSource = new selectRegionsListTableAdapter()) 
    { 
    BusStationDataSet.selectRegionsListDataTable _tblSource = _taSource.GetData(country, Settings.Default.DataLanguage); 
    foreach (BusStationDataSet.selectRegionsListRow row in _tblSource.Rows) 
    { 
     DestinationTable.Rows.Add(new object[] { 
     row.region, 
     row.country, 
     row.title }); 
    } 

    } 
} 

一切順利。超過100行會導致整個應用程序掛起幾秒鐘。

任何想法爲什麼這段代碼太慢?

+0

你肯定這個方法是罪魁禍首? – VinayC 2010-10-05 09:32:55

+0

我對此很肯定。我試圖插入「拋出新的異常();」之後的「foreach」的東西,它得到了異常的年齡拋出。 – beastofman 2010-10-05 09:37:03

+0

DestinationTable的實現? – jebberwocky 2010-10-05 09:39:56

回答

1

DestinationTable或許數據綁定在這一點上?由於DataTable問題更改通知,因此在綁定時添加大量數據會導致性能瓶頸。在許多情況下,您可以簡單地掛起數據綁定,而這樣做。或者,也可以先將其填入,然後,,然後將其賦予數據綁定。

(這裏的區別在於它是否重繪每一次刷新UI,或者一旦整體

+0

DestinationTable是數據綁定的數據源。我有綁定它的組合框項目。 – beastofman 2010-10-05 09:39:37

+0

感謝您的幫助。一些谷歌搜索後,我堅持認爲,如果我爲每個數據源使用diffirenet數據集,效率會更高。 – beastofman 2010-10-05 10:12:24