加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:43:46 所属栏目:百科 来源:网络整理
导读:我有DataGridView填充数据源(SQL)的数据.现在我想添加一个新行,但我不能,因为新数据无法添加到有界DataGridView … 我试图: dataGridView1.Source = null;dataGridView1.Rows.Add("1"); 但它清除了我之前在表格中的数据.怎么做,添加新行而不删除以前的数据
我有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(或来自基础数据源的数据的其他实现),这对更新底层数据源没有任何作用(这将是一个单独的问题).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读