2017-02-23 88 views
0

嗯,这可能看起来是一个愚蠢的问题,但我一直用这个拉着我的头发。DataTable不是DataSet的成员

在我的VS 2005项目中,我已经创建了一个完全正常工作的DataSet,并且有很多DataTables。由于项目中有新的需求,我需要在DataSet中创建一些新的DataTable。一旦创建,我就面临着我从未见过的问题。我无法将新的DataTable用于现有的DataSet。

Dim ds as new ExistingDataSet 

我可以使用已经创建的旧数据结构

ds.ExistingTable.ExistingColumn 'No problems 

但是当我尝试使用新创建的DataTable与ds.NewDataTable.NewColumn VS显示了一个错误:NewTable is not a member of ExistingDataSet

我已经检查了我的新的DataTable和它自己的列出现在Data Sources窗口中,试图清理和重建项目等等......有趣的是,为了隔离问题(我认为它存在于DataSet的某处设计师定义)我做了一个测试,只是用一个新的DataTable创建一个新的DataSet。这样我可以使用它没有问题

Dim dsTest as New DataSetTEST 
dsTest.DataTable1.Column1 

我知道我可以创建具有相同的结构与旧加新的DataTable中的一个新的数据集,并更换用这个新老非工作数据集,但我的旧数据集已经与某些报告相关联,并且希望将我的现有数据集与我的新数据一起使用,并避免再次替换所有数据链接。

+0

这有点不清楚。你在哪里添加了新的DataTable到你的ExistingDataSet? – Pikoh

+0

对不起,忘了提及我在DataSet设计器窗口中添加了新的DataTable。 – equisde

+0

然后尝试检查数据集'.Designer'文件,看看它是如何定义的。也许它是私有的,而不是公开的 – Pikoh

回答

1

VS中存在一个微妙的(且长期存在的)错误,在某些情况下,它似乎失去了设计器与生成的数据集代码之间的同步。尝试在解决方案资源管理器中单击.xsd文件并选择“属性”。确保自定义工具设置为MSDataSetGenerator。

+0

匿名downvoter - 谨慎解释? – peterG