一般情况下,填充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要快一丢丢。