【问题标题】:Unable to update query on Table Adapter with new columns无法使用新列更新表适配器上的查询
【发布时间】:2011-01-27 17:07:48
【问题描述】:

我正在开发一个包含一些强类型 SQL 表适配器的项目,但我对此一无所知。我通过设计器添加了一个新列,但以前存在的查询(基本提取)不会看到新列。经过一番折腾,我终于让它“看到”了查询构建器中的新列:

1) 右键单击​​查询,选择“配置”

2) 点击“上一个”按钮,直到系统提示我选择我的数据库连接字符串。
我不得不将其更改为包含新列的开发数据库

3) 使用“下一步”按钮继续完成向导,无需进行任何其他更改。

需要注意的是,即使我已经通过设计器手动添加了列,这些步骤也是必需的。

一旦我这样做了,在设计器中附加到表的查询就可以很好地“看到”新列。我们将此更新后的表称为 FirstTable。

但是,我遇到了来自 另一个 表的另一个预先存在的查询的问题,该查询与 FirstTable 进行了联接。我将把这张表称为 SecondTable。

我右键单击 SecondTable,选择“配置”,然后在向导中点击“上一个”,这样我就可以选择正确的连接字符串。完成了向导,大概是用这个新的连接字符串重新设计了 SecondTable(这个表没有实际的变化)。

但是,将 SecondTable 连接到 FirstTable 的 Query 无法看到 FirstTable 中的新列。

我最后一次尝试是删除在这两个表之间映射的“关系”,然后重新创建它。我认为这将允许 SecondTable 看到 FirstTable 中的新列,以便可以在联接中使用它。

目前,无论我是直接修改 SELECT 语句还是使用查询生成器(查询生成器根本看不到新列,并且不会让我手动添加)。我确实完全限定了表名(例如 dbo.TableName.ColumnName)

几个小时以来,我一直在努力解决这个问题。有人有什么建议吗?

编辑:我在查询构建器中重新添加了 FirstTable,以查看它是否会刷新可用的列数据。不走运 - 它仍然停留在旧的列名上。

【问题讨论】:

    标签: c# .net sql tableadapter


    【解决方案1】:

    我仍然不明白上述问题的根源是什么,但我找到了解决方法。在我的更新中,我提到在查询构建器中删除和重新添加连接表并没有更新列名。但是,如果我创建了一个全新的 new 查询,然后在查询生成器中添加了连接表……然后噗,新列就在那里。如果有人知道更好的方法来做到这一点,我仍然全神贯注(这需要在以前的基础上创建一个新的查询,将其命名为欺骗名称,删除旧的,将新的重命名回原始名称......真是一团糟)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多