2010-10-05 61 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