【问题标题】:how to make the datagridview load faster with Multiple Row query - c# SQL如何使用多行查询使 datagridview 加载更快 - c# SQL
【发布时间】:2022-01-04 11:54:58
【问题描述】:

代码:

private void suppPopulate()
        {
            byCode.Text = "Supplier Code";
            byDesc.Text = "Supplier";
            DGViewListItems.Columns.Add("custcode", "Customer Code");
            DGViewListItems.Columns.Add("customer", "Customer");

            DGViewListItems.Columns[0].ReadOnly = true;
            DGViewListItems.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;

            DGViewListItems.Columns[1].ReadOnly = true;
            DGViewListItems.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            using (SqlConnection con = db.Connect())
            {
                SqlDataReader rd;
                SqlCommand cmd = new SqlCommand("SELECT DISTINCT custcode, custname FROM Customers WHERE type = 'V';", db.Connect());
                rd = cmd.ExecuteReader();
                int i = 0;
                if (rd.HasRows)
                {
                    while (rd.Read())
                    {
                        DGViewListItems.Rows.Add();
                        DGViewListItems.Rows[i].Cells["custcode"].Value = rd["custcode"].ToString().Trim();
                        DGViewListItems.Rows[i].Cells["customer"].Value = rd["custname"].ToString().Trim();
                    }
                }
                cmd.Connection.Close();
            }
        }

SSMS 输出:

输出表单加载缓慢,查询的行数超过 1000,所以我认为加载缓慢的原因是返回的行数?如果是,如何使datagridview的加载更快?

【问题讨论】:

  • 如果问题是绘画速度慢,开启双缓冲

标签: c# sql datagridview rows


【解决方案1】:

注意 - 此答案与原始问题的第一部分有关,即为什么只填充了 DataGrid 的一行。

增加while循环底部的计数器“i”看起来可以解决问题。

您正在添加行,但只更新第一行。

【讨论】:

  • 那肯定有帮助。关于性能,最好在开始更新之前调用SuspendLayout,之后调用ResumeLayout
  • 查看@PalleDue 的评论。
  • 另请参阅此答案:stackoverflow.com/questions/4649995/… - 有一个关于提高性能的 MSDN 链接
  • 这就是为什么我们只是更简单地加载数据表并将其绑定到网格
  • 数据表工作正常,谢谢大家。
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多