【发布时间】:2015-07-08 05:23:02
【问题描述】:
我目前正在使用 C# 开发一个 Windows 窗体应用程序,并且我有一个 DataGridView,它的数据源是一个 DataTable。 DataGridView 和 DataTable 是从存储在磁盘上的 DataSet 加载的。如果在 DataGridView 中进行了任何更改,则在单击保存按钮时会将它们写入文件。但是,如果所有行都被删除,下次程序运行并且我尝试在 DataGridView 中添加一行时,它不会被写入文件,因为当我加载它时,DataTable 不存在,因为所有行都被删除了.
代码如下:
DataSet ds = new DataSet();
DataTable dt160m = new DataTable("dt160m");
DataTable dt80m = new DataTable("dt80m");
ds.ReadXml(filename);
dt160m = ds.Tables["dt160m"];
dt80m = ds.Tables["dt80m"];
dataGridView160m.DataSource = dt160m;
dataGridView80m.DataSource = dt80m;
现在这很棒。例如,如果我从 dataGridView80m 中删除所有记录,那么当我重新打开它时,DataSet 中不再有名为 dt80m 的 DataTable。添加额外的行不会创建数据表。
有解决此问题的建议吗?谢谢。
【问题讨论】:
-
您可以创建一个辅助数据集 ds2 并将一个带有单个记录的 XML 文件(可能嵌入到项目资源中)读入其中。删除 Rows[0] 以清除 ds2 DataTable 和 AcceptChanges。然后,合并 2 个数据集: ds.Merge(ds2) ;
标签: c# datagridview datatable