0

在 ASP.NET 应用程序中,我们有一个 XSD 文件和一个 web.config 文件。

在配置文件中,我们有这样指定的连接字符串:

<add name="DbConnectionString" connectionString="Data Source=sqldb;Initial Catalog=TestDB;Persist Security Info=True;User ID=user;Password=password;" providerName="System.Data.SqlClient"/>

在 XSD 代码隐藏中,每个表适配器选择命令都有以下行(自动生成):

<DbSource ConnectionRef="DbConnectionString (Web.config)" DbObjectName="dbo.CUSTOMER" ...

但是,如果我在设计器中打开表适配器查询并修改 SQL,则后面代码中的行将更改为:

<DbSource ConnectionRef="DbConnectionString (Web.config)" DbObjectName="TestDb.dbo.CUSTOMER" ...

它在 DbObjectName 中指定的表名的开头添加了“TestDb”。

显然,当我们将此网站发布到实时系统时这是错误的,因为即使我们在 web.config 中将连接字符串更改为“LiveDb”,它也会尝试从 TestDB 获取数据。

有没有人遇到过这种行为,有没有办法阻止 XSD 设计器停止为表添加数据库名称的前缀?

谢谢

4

1 回答 1

1

当您将来自不同数据库的表添加到数据集时,就会发生这种情况。在向数据集添加表或查询时,不要获取不同的数据库或连接字符串。请检查您添加到数据集中的所有表。然后重新创建与当前数据集有相同问题的表。添加数据集表时不要更改连接名称。使用 Web 配置中指定的相同连接字符串。

谢谢

于 2013-02-20T07:22:48.317 回答