C# 以编程方式将行添加到数据绑定的DataGridView?

C# 以编程方式将行添加到数据绑定的DataGridView?,c#,datagridview,C#,Datagridview,我有一个问题,我似乎无法解决它。我想这里会有人帮忙的 我有一个表单,其中包含客户的DataGridView。现在,我想向这个DataGridView添加几个客户,而不实际将它们添加到数据库中。这是因为客户机必须能够创建一个客户机列表,并在创建完成后立即添加所有客户机 我试过这个: string[] array = {"Microsoft", "Redmond", "Something"} dataGridView.Rows.Add (array); 现在不能这样做,因为我得到一个异常,在代码行

我有一个问题,我似乎无法解决它。我想这里会有人帮忙的

我有一个表单,其中包含客户的DataGridView。现在,我想向这个DataGridView添加几个客户,而不实际将它们添加到数据库中。这是因为客户机必须能够创建一个客户机列表,并在创建完成后立即添加所有客户机

我试过这个:

string[] array = {"Microsoft", "Redmond", "Something"}
dataGridView.Rows.Add (array);
现在不能这样做,因为我得到一个异常,在代码行中有这样一句话:您不能通过编程将行添加到数据绑定的DataGridView

现在我还了解到,这可以通过使用表适配器插入行而不是通过直接添加行来解决。DGV。但这也是不可能的,因为我在DGV中使用自定义头,因为现有数据是通过JOIN获取的,所以如果我通过TableAdapter添加它们,我会得到一个异常,即它与数据库表模式不匹配

现在我真的迷路了。。。有人知道这个问题的(半途而废的)优雅解决方案吗


谢谢

为了显示这些行,只需在数据绑定之前执行UNION(-like)操作即可。获取记录列表,添加特殊记录,然后进行数据绑定


更新也需要一些特殊操作。但是由于完全缺乏关于数据结构的详细信息,所以不可能说出是什么

将DGV绑定到
绑定列表
,其中
您的对象
可以是一个简单的类,其属性反映您的数据库架构。首先从数据库中填充
BindingList
,DGV会自动将
YourObject
实例添加到列表中。当您准备好提交更改时,请从BindingList手动执行此操作。

DGV绑定到的数据源是什么类型的?我将尽力对此进行解释。我有一个以下结构的链接:{LinkID,CustomerID,Type}。现在,我拥有的DataGridView应该显示客户的名称,而不是ID(这就是我拥有JOIN的原因)。现在我有了一个标题为| ID | NameOfCompany |的DGV,但底层的表结构不同。客户从另一种形式中选择。所以基本上我想要的是:DGV是数据绑定的。以编程方式添加值,当用户添加完链接(并编辑它们)后,将它们全部添加到数据库中…最好将这些信息添加到问题中。您可以在Adapter.Fill之后向DataTable添加特殊记录,并在更新之前删除它们。但是总的来说,
BindingList
可能同样简单。