【问题标题】:VS2008 DataSet Wizard doesn't match tables for updatingVS2008 数据集向导不匹配更新表
【发布时间】:2010-01-14 23:07:44
【问题描述】:

本网站上的第一个问题。

我在使用 Visual Studio 2008 时遇到了一个非常顽固的问题,我希望之前有人已经解决了这个问题。

我有 2 个库和 1 个项目使用我使用数据源中的“使用向导配置数据集”选项生成的强类型数据集(MSSQL 后端)。我已经让它们正常工作了一段时间,并且我在非设计器文件中为行类编写了很多代码。我还使用数据集设计器指定了许多自定义查询。这都是我不能松懈的工作。

我最近进行了一些更改以重新组织我的库,其中包括更改库本身的名称。我还将连接字符串更改为指向不同的数据库,该数据库是开发副本(完全相同的架构)。

现在的问题是,当我打开“使用向导配置数据集”以拾取我添加到其中一个表的新列时,它不再与向导中的表正确匹配。该向导显示数据库中的所有表,并且它们旁边都没有复选框(即:不属于该数据集)。在这些下方,它再次显示所有表格,但带有红色 X 并且这些已被选中。基本上意味着 Visual Studio 看到了它当前在 DataSet 中拥有的所有表,并看到了数据库中的所有表,但认为它们不再相同,因此不匹配!

很久以前我也发生过同样的事情,我想我只是从头开始重新构建 xsd 并手动复制代码,然后不得不重新定义我在数据集设计器中构建的所有自定义查询。这不是一个好的解决方案。

我正在寻找 2 个答案: 1. 是什么原因导致这种情况发生以及如何预防。 2. 我该如何解决这个问题,以便向导再次相信其 xsd 中的表与数据库中的表相同(是的,它们仍然具有完全相同的名称)。

谢谢。

【问题讨论】:

    标签: visual-studio visual-studio-2008 ado.net strongly-typed-dataset


    【解决方案1】:

    数据集设计器使用默认查询(第一个带有检查的查询)来同步每个表的架构。每当您去编辑默认查询时,VS 实际上会连接到您的数据源并查找查询中的更改。如果添加了新列,它们将显示为新列,供您添加到表中。重命名的列显示为新的,因为 VS 无法知道您更改了名称。

    答案 1. XSD 文件包含最初用于创建表的数据库表的名称。如果您更改表的名称,设计人员将不知道要同步到哪个表。

    答案 2. 您可以编辑 XSD 文件中的 XML。在 XSD 文件中执行“查找和替换”,将旧表名替换为新表名。确保在执行此操作之前备份了 XSD 文件。注意只更改旧表名的实例,而不是任何其他工作 XML。

    【讨论】:

      猜你喜欢
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      相关资源
      最近更新 更多