Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagrid和90000行。最佳方法_C#_Datagrid - Fatal编程技术网

C# Datagrid和90000行。最佳方法

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 ," +

我有datagrid和90000行

90000线datagrid很晚才开通。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;
                }
            }
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分页:(