C# Datagrid和90000行。最佳方法
我有datagrid和90000行 90000线datagrid很晚才开通。9秒后打开。加快开放的最佳方式是什么 我的代码:C# Datagrid和90000行。最佳方法,c#,datagrid,C#,Datagrid,我有datagrid和90000行 90000线datagrid很晚才开通。9秒后打开。加快开放的最佳方式是什么 我的代码: string sqlSorgu = "SELECT "+ " customer.id," + " customer.medaxil_status," + " customer.hesab_nomresi," + " customer.soyad ," +
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;
}
}
string sqlSorgu=“选择”+
“customer.id,”+
“客户。medaxil_状态,”+
“客户,我是hesab_nomresi,”+
“customer.soyad,”+
“customer.ad,”+
“customer.ataadi,”+
“customer.mebleg,”+
“客户,teskilat_kodu”+
“根据customer.id ASC从客户订单”;
OleDbDataAdapter dataAdapter=新的OleDbDataAdapter(sqlSorgu,Program.esas.bazayaQosul);
setx=新数据集();
datatabmedaxil=新数据表();
setx.Tables.Add(datatabmedaxil);
dataAdapter.Fill(datatabmedaxil);
MedaxilGridView1.DataSource=datatabmedaxil;
如果(this.MedaxilGridView1.RowCount>0)
{
对于(int i=0;i
请帮助我我知道没有简单明了的解决方案 选项>我会考虑使用它来控制:
- 搜索过滤器
- 将输出限制为合理的行数(例如1000),并显示列表被截断的警告李>
- 分页(将结果拆分为页面)
- 同意其他人的观点,90000行在任何方面都不可用。这里有一篇关于分页StackOverflow的文章:
我还强烈建议您不要依赖控件来处理分页。它所要做的就是把那90000行放入内存,并通过它们进行分页。同样缓慢,同样可怕,同样无法使用
除了寻呼之外,还需要考虑将集合大小减少到合理数量的方法。即使分页90000行对任何人来说都是太多了。这代表了当每页显示54个项目时,必须翻页1667页才能到达最后一条记录的用户体验。扪心自问,你是否愿意翻阅这么多的条目来找到你想要的
关于你的Foxpro声明?有很多因素在起作用,比如本地与远程、数据大小、数据存储方式等。140000行(200字节)数据来自本地硬盘,与90000行(用XML序列化)有很大不同,来自一个每行有1K数据的公司服务器的服务。虽然我同意几乎所有其他人的观点,在一个视图中90000行是完全不可用的,但有时支付账单的人会做出愚蠢的决定 看起来这可能适合您的需要:
在Windows窗体DataGridView控件中通过实时数据加载实现虚拟模式:您想对数据进行分页。如果你有一个1500页的PDF文件(90000行,每页60行),你会打印整个文件还是只打印你想要的页面?愚蠢的问题:你需要加载所有90k行吗?用户需要吗?不显示90000行。对于一个显示那么多数据的网格,用户绝对不能做任何有建设性的事情。Winform?WPF?ASP.NET或其他什么?但我看到了一个用Foxproda编写的程序。14万行将在2秒内发送,我认为C#DataGrid组件不提供虚拟模式来处理大型数据集。分页可能是最接近的。如果我的程序分页有问题。I textbox-在datagrid中查找已写入的单词行。我正在为此目的使用。我在datagrid中找不到单词100.1000分页:(