当前位置: 首页 > 编程语言 > C#

如何向datagridview添加新行?Share

时间:2023-04-10 11:49:55 C#

如何向datagridview添加新行?我有一个DataGridView,其中填充了来自数据源(SQL)的数据。现在我想添加一个新行,但我不能,因为无法将新数据添加到有界DataGridView中......我试过了:dataGridView1.Source=null;dataGridView1.Rows.Add("1");但它清除了我在.怎么做,添加新行而不删除以前的数据?当您将DataSource属性设置为null时,实际上是从DataGridView中删除所有数据(因为它不知道要绑定到什么)。你有两个选择。首先是更新底层数据源。让我们假设它是一个数据表。在这种情况下,您可以这样做:DataTabledt=dataGridView1.SourceasDataTable;dt.Rows.Add(新对象[]{...});然后DataGridView将获取更改(请注意,如果您没有绑定到未实现INotifyCollectionChanged接口的对象,则必须调用ResetBindings方法来刷新网格)。另一种选择是让DataGridView管理行。为此,您可以使用Rows属性返回的DataGridViewRowCollection上的Add方法手动添加每个项目:foreach(variteminsource){dataGridView1.Rows.Add("1","2","3",...);我不会说第二个解决方案是最优的,但它会起作用。最后,假设您要绑定到DataTable(或来自底层数据源的其他数据实现),这将不会更新底层数据源(这将是一个单独的问题)。简短的回答是,你不知道。当您将DataSource设置为null时,您已经断开了DataGridView和数据源之间的链接,因此它的数据将不会被保留。您不能向绑定的DataGridView添加行,因为它应该表示基础数据源的状态;您实际上是在要求.net使您的表与其后备存储不同步,这首先违背了数据绑定的目的。如果要向后备存储添加一行,则应在DataSource而不是DataGridView中添加该行。也许你想要手动和冗长?是这样的吗?数据集ds=new数据集();OleDbDataAdapter适配器=null;adapter=newOleDbDataAdapter("SELECT*FROMWHERE",conn);适配器.填充(ds);dataGridView1.ColumnCount=5;//多少列返回你的SQL查询?以0开头dataGridView1.Columns[0].Name="COl-1";dataGridView1.Columns[1].Name="COl-2";dataGridView1.Columns[2].Name="COl-3";dataGridView1.Columns[3].Name="COl-4";dataGridView1.Columns[4].Name="COl-5";数据表dt=ds.Tables[0];foreach(DataRowdrindt.Rows){dataGridView1.Rows.Add((dr["COL_HEADER_NAME1"].ToString()),(dr["COL_HEADER_NAME2"].ToString()),(dr["COL_HEADER_NAME3"].ToString()),(dr["COL_HEADER_NAME4"].ToString()),(dr["COL_HEADER_NAME5"].ToString()));您只需使用行集合的添加方法添加行me.datagridview1.rows.add("first","second","third");您可以使用数组集合添加任意数量的项目。以上就是C#学习教程:Datagridview如何添加新行?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: