c# - 以编程方式将行添加到 DataGridTable

标签 c# .net datagridview

如何在 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/

相关文章:

c# - ASP.Net MVC 4 PUT 请求响应 409 - 冲突

c# - 使用连接和聚合函数的 linq 查询

c# - 从列表框拖放到文本框

c# - 使用默认获取/设置主体创建许多属性的快捷方式

c# - DataGridView 不进入编辑模式

c# - OWIN自静态文件服务器多路由

.net - WPF 控件未显示在 WinForms 应用程序的 ElementHost 中

c# - 使用未知数量的未知类型 - .NET

mysql - 为什么在 vb 中替换 datagridview 值时会出错?

c# - 需要有关包含许多列的可编辑 WinForms 表格的建议,还有……这个小部件是什么?