如何在 C# 中以编程方式将行添加到 DataGridTable?当用户选择一个选项时,我想用我正在获取的新数据重新填充 DataGridTable,如下所示:
connect.Open();
MySqlCommand comm = connect.CreateCommand();
comm.CommandText = getCustomerInvoices + customerID + "\'";
MySqlDataReader r = comm.ExecuteReader();
while (r.Read())
{
DataGridViewRow d = new DataGridViewRow();
String[] parameters = new String[5];
parameters[0] = r.GetValue(0).ToString();
parameters[1] = r.GetValue(1).ToString();
parameters[2] = r.GetValue(2).ToString();
parameters[3] = r.GetValue(3).ToString();
parameters[4] = r.GetValue(4).ToString();
d.SetValues(parameters);
invoiceTable.Rows.Add(d);
}
connect.Close();
似乎发生的是,我在表中添加了一个新行,但旧行仍然存在,新行似乎没有任何值(一堆空白文本框,我知道该查询在我的测试用例中返回了一个结果)。
有人可以向我解释我必须做什么吗?
最佳答案
我相信 Rows.Add() 对字符串数组有重载。如果您无论如何都要创建一个字符串数组,为什么不尝试使用它呢? 即代替:
d.SetValues(parameters);
invoiceTable.Rows.Add(d);
你可能会使用:
invoiceTable.Rows.Add(parameters);
或者,如果您仍想创建一个 DataGridViewRow 对象并对其调用 setvalues,我认为您需要将数组转换为 Object 类型的数组,或者将每个值作为其自身的参数传递,而不是传递数组。
关于c# - 以编程方式将行添加到 DataGridTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/404498/