-1

我有数据网格和 90000 行。

90000 行数据网格打开得很晚。9秒打开。什么是加快开放速度的最佳方法?

我的代码:

string sqlSorgu = "SELECT "+
              " customer.id," +
              " customer.medaxil_status," +
              " customer.hesab_nomresi," +
              " customer.soyad ," +
              " customer.ad ," +
              " customer.ataadi ," +
              " customer.mebleg ," +
              " customer.teskilat_kodu" +

                   " FROM customer  ORDER BY customer.id ASC ";
                    OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sqlSorgu, Program.esas.bazayaQosul);

                    setx = new DataSet();
                     datatabmedaxil = new DataTable();
                    setx.Tables.Add(datatabmedaxil);

                    dataAdapter.Fill(datatabmedaxil);
                    MedaxilGridView1.DataSource = datatabmedaxil;


            if (this.MedaxilGridView1.RowCount > 0)
            {
                for (int i = 0; i < this.MedaxilGridView1.RowCount; i++)
                {
                    if (this.MedaxilGridView1["medaxil_status", i].Value.ToString() == "1")
                        this.MedaxilGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Pink;
                    else
                        this.MedaxilGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Empty;
                }
            }

请帮我

4

3 回答 3

1

虽然我几乎同意其他所有人的观点,即单个视图中的 90,000 行是完全不可用的,但有时支付账单的人会做出愚蠢的决定......

看起来这可能适合您的需求:

在 Windows 窗体 DataGridView 控件中使用实时数据加载实现虚拟模式:MSDN

于 2012-06-22T20:42:32.637 回答
0

同意其他人的观点,即 90000 行无论如何都不可用。StackOverflow 上有一篇关于分页的文章:

使用 Linq 实现分页

我还强烈建议您不要依赖控件来处理分页。它所要做的就是将这 90000 行放入内存并通过它们进行页面。一样慢,一样可怕,一样无法使用。

除了分页之外,您还需要考虑将集合大小减小到合理数量的方法。即使分页 90000 行对任何人来说都太多了。这表示在每页显示 54 个项目时必须翻阅 1667 页才能到达最后一条记录的用户体验。问问自己,您是否愿意翻阅这么多项目才能找到您想要的东西?

至于你的 Foxpro 声明?有很多因素在起作用,例如本地与远程、数据大小、数据存储方式等。来自本地硬盘驱动器的 140000 行和 200 字节数据与使用 XML 序列化的 90000 行有很大不同,来自一项服务,该服务将发送到每行有 1K 数据的公司服务器。

于 2012-06-22T20:12:13.980 回答
0

我知道没有简单直接的解决方案。

我会考虑使用来控制它的选项:

  • 搜索过滤器
  • 将输出限制为合理的行数(例如 1000)并显示列表被截断的警告。
  • 分页(将结果拆分为页面)
于 2012-06-22T19:35:11.307 回答