【问题标题】:Directly manipulating a DataSet直接操作数据集
【发布时间】:2009-12-19 08:59:29
【问题描述】:

我有一个 轻量级 基于数据库的东西。从功能上讲,我想将表读取和写入磁盘(将来可能还会添加一些其他信息)。

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

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

很明显,我错过了一些东西。

我错过了什么?


这是建议的:

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

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

edit2:我很笨。有一个新的行函数。

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

【问题讨论】:

  • 我更新了我的答案以解决您的编辑问题

标签: c# datagridview dataset


【解决方案1】:

不要以编程方式修改DataGridView 的内容,而是修改DataSet 本身。如果DataSet 数据绑定到DataGridView(使用DataSourceDataMember 属性),它将自动更新DataGridView。用户在DataGridView 中所做的更改将自动反映在DataSet 中。


更新

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

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

你可以手动构造一个DataRow

DataRow row = dataSet1.Tables["mytable"].NewRow();
row["column1"] = value1;
row["column2"] = value2;
...
dataSet1.Tables["mytable"].Rows.Add(row);

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

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

【讨论】:

  • 嗯。我稍后会解决这个问题。它没有正确写入/输出。在另一个说明中,在 MS 系统设计中检测到 Architecture Astronaut。 >.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-22
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
相关资源
最近更新 更多