我有datagrid和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;
}
}
请帮帮我
答案 0 :(得分:1)
虽然我几乎同意其他所有人在一个视图中的90,000行完全无法使用,但有时支付账单的人会做出愚蠢的决定....
看起来这可能适合您的需求:
在Windows窗体DataGridView控件中使用即时数据加载实现虚拟模式:MSDN
答案 1 :(得分:0)
我知道没有简单直接的解决方案。
我会考虑使用以保持控制的选项:
答案 2 :(得分:0)
与其他人一致认为90000行无法使用。这里有关于分页的StackOverflow的文章:
Implementing paging using Linq
我还强烈建议您不要依赖控件来处理分页。它所要做的就是将90000行放入内存,并将页面放入内存中。同样缓慢,同样可怕,同样无法使用。
除了分页之外,您还需要考虑将设置大小降低到合理数量的方法。即使分页90000行对于任何人来说也是太多了。这表示用户体验在每页显示54个项目时必须翻阅1667页才能到达最后一条记录。问问自己,您是否希望翻阅那么多项目以找到您想要的内容?
关于你的Foxpro声明?那么有许多因素在起作用,例如本地与远程,数据大小,数据存储方式等.140000行,200字节数据来自本地硬盘,与90000行不同,用XML序列化,来自一个服务,转发到每行有1K数据的公司服务器。