zoukankan      html  css  js  c++  java
  • 【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要快一丢丢。

    /*******相与枕藉乎舟中,不知东方之既白*******/
  • 相关阅读:
    vue之v-on
    垂直居中下
    垂直居中上
    vue之v-for
    vue之v-if和v-show
    vue之v-model
    vue之v-bind
    数学---目录
    【数学】证明题
    【计算机网络】应用层
  • 原文地址:https://www.cnblogs.com/Mars-0603/p/13776815.html
Copyright © 2011-2022 走看看