直接操作DataSet

时间:2009-12-19 00:21:22

标签: c# datagridview dataset

我有一个轻量级基于数据的东西。从功能上讲,我想将表读出并写入磁盘(以及将来的其他信息)。

我选择使用DataSet对象,与IO的DataGridView控件配对。 DataSet对象可以通过句柄XML读/写函数序列化到磁盘并再次返回。

但是,似乎没有明显的方法将信息添加到DataView控件并更新DataSet对象。除此之外,DataGridView不会在运行时为我添加行,也不会让我以编程方式运行addrow方法。

显然,我错过了一些东西。

我错过了什么?


有人建议:

dataSet1.Tables["mytable"].Rows.Add();

但是System.Data.DataRow不允许直接构造,我想为DataGridView添加一个空行来填写?

编辑2:我很蠢。有一个新的行函数。

嗯。我想知道这是否只是一种错误的方法。

1 个答案:

答案 0 :(得分:1)

请勿以编程方式修改DataGridView的内容,而是修改DataSet本身。如果DataGridView数据绑定到DataSet(使用DataSourceDataMember属性),它会自动更新DataGridView。用户在DataSet中所做的更改将自动反映在dataSet1.Tables["mytable"].Rows.Add();


更新

DataRow
     

但是System.Data.DataRow不允许直接构造,我想为DataGridView添加一个空行来填写?

您可以手动构建DataRow row = dataSet1.Tables["mytable"].NewRow(); row["column1"] = value1; row["column2"] = value2; ... dataSet1.Tables["mytable"].Rows.Add(row);

BindingSource

如果您只想要一个空行,只是不要初始化字段......

如果您在DataSetDataGridView之间有AddNew,请致电BindingSource上的BindingNavigator。它会添加一个空行。您还可以使用BindingSource控件来处理对{{1}}方法的调用。