c# – 如何向datagridview添加新行?

前端之家收集整理的这篇文章主要介绍了c# – 如何向datagridview添加新行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有DataGridView填充数据源(sql)的数据.现在我想添加一个新行,但我不能,因为新数据无法添加到有界DataGridView …

我试图:

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

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

解决方法

当您将 DataSource property设置为null时,您实际上是从 DataGridView删除所有数据(因为它不知道要绑定到什么).

你有两个选择.第一种是更新基础数据源.我们假设它是DataTable.在这种情况下,你会做类似的事情:

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

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

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

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

我不会说第二种解决方案是最佳的,但它会起作用.

最后,假设您绑定到DataTable(或来自基础数据源的数据的其他实现),这对更新底层数据源没有任何作用(这将是一个单独的问题).

猜你在找的C#相关文章