我有一个小型数据集,它的大部分架构是在设计时定义的,但我在运行时向其中一个表中添加了几列。我的问题是如何重置这些更改?
数据集未链接到任何数据源。它只有自己的表格,我“手动”填充。静态列已在设计时添加到数据表中。但是,我根据类别列表添加了一些列作为运行时。像这样:
For Each aCategory In theCategories
theDataTable.Columns.Add(aCategory.CategoryName, System.Type.GetType("System.Boolean"))
Next
该数据集用于在我的应用程序中弹出的一个小对话框中。我在使用 Load 事件打开对话框时添加动态列。第一次一切都很好。但是,如果您关闭对话框并重新打开它,就会出现问题。我的启动例程尝试再次添加动态列,但抛出一个错误,指出该列已存在。我已经尝试了很多事情并做了一些阅读,但我无法找到在对话框关闭时重置数据集的方法。唯一的解决方案是关闭整个应用程序并重新打开它。我在对话框表单的 Leave 事件中尝试了以下操作:
theDataSet.Reset()
theDataSet.Dispose()
theDataSet.RejectChanges()
这些似乎都没有影响,错误仍在继续。除了数据集之外,我还尝试将相同的方法应用于表。如:
theDataSet.Tables(0).Reset()
etc.
关于在表单关闭时如何完全消除数据集的任何想法?我在 VB 中给出了我的示例,但我可以用 VB 或 C# 来消化答案。