如何使用多行查询使 datagridview 加载更快 - c# SQL

how to make the datagridview load faster with Multiple Row query - c# SQL

代码:

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的加载速度更快?

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

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

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