我的应用程序已经开发,现在我们将更改会话对象中存储的连接字符串(分布式数据库管理系统(DDBMS)的Bcoz)
问题在这里.....
In that application There are so many **ObjectDataSource** which are
使用 .XSD 进行初始化 文件。这与...有关 TableAdapter 以及 TableAdapter 的连接字符串 从Web.Config文件中分配。 现在如何更改连接 字符串到会话中存储的任何内容 对象
提前致谢。
答案 0 :(得分:7)
要在运行时更改XSD的连接,您需要将表适配器的ConnectionModifier属性设置为Public。如果它们是由“向导”创建的,默认情况下它们将被设置为Friend / Internal(VB / C#)。
我无法找到ConnectionModifier属性(它没有在我的vs2005文档中列出)!如果单击XSD的下部区域(查询所在的区域),则应在属性窗口中显示该区域以进行更改。
然后你可以设置Connection属性(它需要一个对象而不是一个字符串),你声明你的表适配器。
答案 1 :(得分:1)
这是我讨厌Typed Datasets的原因之一,实际上也是LinqToSQL的缺点之一(但更容易解决)。
我认为,一旦更改连接字符串,或者进入并“自定义”它们以在运行时使用web.config文件中的连接字符串而不是复制它,您将无法重新生成所有类型的数据集来自web.config的设计时。如果您“自定义”,那么每当您进行任何导致重新创建类型化数据集的更改时,您都必须担心丢失自定义代码。这是利弊。
编辑:我稍微误解了这个问题。解决方案仍然相同,但只有我的第二个提议的解决方案是可行的。您必须自定义TableAdapter代码,然后在对类型化数据集进行更改时小心维护它。答案 2 :(得分:1)
生成的tabled适配器是一个部分类。这意味着您可以在另一个文件中添加该类的代码。 您可以将表适配器的Connection属性设置为public,并根据需要从客户端代码进行修改。几乎不是一个好的解决方案,但也许是你唯一的解决方案。
答案 3 :(得分:0)
我有一个winforms应用程序,我有类似的问题。我创建了一个包含我的设置(clsGlobal)的静态类,其中一个属性是连接字符串。在我引用数据表的页面中,我将连接字符串设置为clsGlobal.gstrConnectionString或连接字符串属性。在应用程序初始化阶段可能会更好。但是,在app启动时从共享属性设置tableadapter连接字符串可以解决这个问题。
myTableAdapter.Connection.ConnectionString = clsGlobals.gstrConnectionString;
因此,您只需.ToString()
您的会话对象并将其分配给ta.Connection.ConnectionString。