自定义数据集性能问题

时间:2010-10-05 09:25:38

标签: c# dataset

在运行时,我的应用程序从MSSQL服务器获取数据,并且有一个对象将数据提取到我的自定义数据集中。 这是代码:

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 });
    }

  }
}

一切顺利,直到foreach开始工作。超过100行会导致整个应用程序挂起几秒钟。

为什么这段代码太慢了?

1 个答案:

答案 0 :(得分:1)

此时DestinationTable可能是数据绑定的吗?由于DataTable会发出更改通知,因此在绑定时添加大量数据会导致性能瓶颈。在许多情况下,您可以在执行此操作时暂停数据绑定。或者,填充第一个然后将其填入数据绑定。

(这里的区别在于它是否每次重绘和刷新一次UI,或者整体