• 【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要快一丢丢。

    /*******相与枕藉乎舟中,不知东方之既白*******/
  • 相关阅读:
    盛最多水的容器
    除自身以外数组的乘积
    组合总和
    旋转图像
    找到所有数组中消失的数字
    RSA加密、签名机制
    SpringBoot-从新建一个项目看起
    linux下vi命令修改文件及保存的使用方法
    集合
    第一个注解式的SpringMVC项目
  • 原文地址:https://www.cnblogs.com/Mars-0603/p/13776815.html
Copyright © 2020-2023  润新知