【c#】解决DataTable.Rows.Add(dr)语句执行速度慢的问题(GridControl)

一般情况下,填充DataTable的方法是:

先添加列:

DataTable.Columns.Add("列1");

DataTable.Columns.Add("列2");

……

再添加行:

DataRow dr = DataTable.NewRow();

dr["列1"] = data1;

dr["列2"] = data2;

……

DataTable.Rows.Add(dr);

调试的时候发现,Rows.Add(dr);这句运行起码得要200多毫秒,多循环几次,界面控件得几十秒才加载出来,简直反人类  = =||| 

然后查了一下资料,发现是绑定数据源的地方错了。

我原来是在添加列以后,就直接把DataTable绑定到 控件.DataSource了,然后再NewRow()添加行的。

把数据源绑定放在添加行之后,DataTable.Rows.Add(dr);的执行速度就降到20ms左右了,加载速度好歹能接受了。

不过还有需要优化的地方——数据源绑定的语句在大数据量时速度也会很慢!!

用DataGridView的话,好像可以这么改:https://www.cnblogs.com/Angel-szl/p/12937842.html

不过我用的是GridControl和LayoutView,还没找到什么好的办法,等待高手指点……

PS:如果要设置LayoutView某行的可见性,用LayoutView.Columns["列名"].Visible比

用LayoutView.Columns.ColumnByFieldName("列名").Visible要快一丢丢。

/*******相与枕藉乎舟中,不知东方之既白*******/
原文地址:https://www.cnblogs.com/Mars-0603/p/13776815.html