gpt4 book ai didi

c# - 如何将新行添加到datagridview?

转载 作者:太空狗 更新时间:2023-10-29 20:21:27 24 4
gpt4 key购买 nike

我有 DataGridView,其中填充了来自数据源 (SQL) 的数据。现在我想添加新行,但我不能,因为无法将新数据添加到有界 DataGridView...

我正在尝试:

dataGridView1.Source = null;
dataGridView1.Rows.Add("1");

但它清除了我以前在表中的数据。怎么做,添加新行而不删除以前的数据?

最佳答案

当您设置 DataSource propertynull,您实际上是从 DataGridView 中删除所有 数据(因为它不知道要绑定(bind)什么)。

这里有两个选择。首先是更新底层数据源。我们假设它是一个 DataTable .在这种情况下,你会做类似的事情:

DataTable dt = dataGridView1.Source as DataTable;
dt.Rows.Add(new object[] { ... });

然后 DataGridView 将接受更改(请注意,如果您没有绑定(bind)到未实现 INotifyCollectionChanged interface 的内容,则必须调用 ResetBindings method让网格刷新)。

另一种选择是让 DataGridView 管理行。您可以使用 Add method 手动添加每个项目来完成此操作在 DataGridViewRowCollection 上由 Rows property 返回:

foreach (var item in source)
{
dataGridView1.Rows.Add("1", "2", "3", ...);
}

我不会说第二种解决方案最优,但它会起作用。

最后,假设您要绑定(bind)到 DataTable(或来自底层数据源的数据的其他一些具体化),这不会对更新底层数据源做任何事情(那将是一个单独的问题)。

关于c# - 如何将新行添加到datagridview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com