【问题标题】:Assign connection string to table adapter from session从会话将连接字符串分配给表适配器
【发布时间】:2008-12-13 07:39:31
【问题描述】:

我的应用程序已经开发完毕,现在我们将更改存储在会话对象中的连接字符串(分布式数据库管理系统 (DDBMS) 的 Bcoz)

问题来了.....

In that application There are so many **ObjectDataSource** which are

使用 .XSD 初始化 文件。这与 TableAdapter以及TableAdapter在哪个连接字符串 是从 Web.Config 文件分配的。 现在如何更改连接 字符串到会话中存储的任何内容 对象?

提前致谢。

【问题讨论】:

    标签: c# asp.net xsd


    【解决方案1】:

    要在运行时更改 XSD 的连接,您需要将表适配器的 ConnectionModifier 属性设置为 Public。如果它们是由“向导”创建的,它们将默认设置为 Friend/Internal (VB/C#)。

    我找不到 ConnectionModifier 属性(我的 vs2005 文档中没有列出)!如果您单击 XSD 的下部区域(查询所在的位置),那么它应该在属性窗口中可见以进行更改。

    然后,您可以在声明表适配器的任何位置设置 Connection 属性(它需要一个对象而不是字符串)。

    【讨论】:

      【解决方案2】:

      这是我讨厌类型化数据集的原因之一,实际上也是 LinqToSQL 的缺点之一(但更容易解决)。

      我认为您要么在更改连接字符串后重新生成所有键入的数据集,要么进入并“自定义”它们以在运行时使用 web.config 文件中的连接字符串,而不是复制它在设计时来自 web.config。如果您“自定义”,那么每当您进行任何导致类型化数据集重新创建的更改时,您都必须担心丢失自定义代码。这就是优点/缺点。

      编辑:我稍微误解了这个问题。解决方案仍然相同,但只有我提出的第二个解决方案是可行的。您必须自定义 TableAdapter 代码,然后在对类型化数据集进行更改时小心维护它。

      【讨论】:

        【解决方案3】:

        生成的表格适配器是一个部分类。这意味着您可以在另一个文件中添加该类的代码。 您可以公开表适配器的 Connection 属性,并根据您的需要从客户端代码修改它。几乎不是一个好的解决方案,但可能是您唯一拥有的解决方案。

        【讨论】:

          【解决方案4】:

          我有一个遇到类似问题的 winforms 应用程序。我创建了一个包含我的设置 (clsGlobal) 的静态类,其中一个属性是连接字符串。在我引用数据表的页面中,我将连接字符串设置为 clsGlobal.gstrConnectionString 或连接字符串属性。在应用程序初始化阶段执行此操作可能会更好。但是,在应用程序启动时从共享属性设置 tableadapter 连接字符串应该可以解决这个问题。

          myTableAdapter.Connection.ConnectionString = clsGlobals.gstrConnectionString;
          

          因此,您只需 .ToString() 您的会话对象并将其分配给 ta.Connection.ConnectionString。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-04-02
            • 1970-01-01
            • 2015-05-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多