【问题标题】:How to retrieve a list of tableadapters?如何检索表适配器列表?
【发布时间】:2010-12-26 11:55:36
【问题描述】:

背景: 我的大多数程序都使用表适配器,连接字符串存储在应用程序设置中。这很好用,但在从开发环境切换到生产环境时是一个真正的 PITA。在开始使用任何应用程序之前和之后,我都必须手动更改连接字符串。

经过一番研究,我发现了如何动态切换表适配器的连接字符串。通过简单地为 connectionString 添加一个自定义属性,我就能够实现这一点。但是我仍然必须在每个应用程序的新事件中添加代码,以便在加载时切换连接字符串。 (我的连接字符串作为应用程序属性设置保存在一个通用 DLL 中。我只在本地保存一份带有我的连接字符串的 DLL 副本,并在生产服务器上保存一份带有生产连接字符串的 DLL 副本。)

新问题

我想更进一步,让数据集在使用新事件加载时更改它们各自包含的所有表适配器的连接字符串,或者从 VB 模块执行相同操作。我一次最多可以拥有 3 个数据集。

我确实非常依赖智能感知来帮助我确定哪些方法和属性可用,但是我找不到在我的数据集中检索表适配器列表的方法。据我所知,它们似乎不是任何对象集合的一部分。我已经搜索了相当多的解决方案,但没有运气。

马歇尔

【问题讨论】:

  • 当您说我的连接字符串作为应用程序属性设置保存在一个通用 DLL 中时,您的意思是嵌入在一个 dll 中吗?还是作为该 DLL 的应用程序设置?
  • 作为该DLL的应用设置
  • 该 DLL 有一个方法,当调用应用程序设置中的连接字符串时,它会复制到我在 DLL 中设置的几个公共变量中。这就是我访问新连接字符串的方式。

标签: vb.net datatable ado dataset


【解决方案1】:

您可能需要重新配置连接字符串的位置。使您的表示层(即应用程序)在其 app.config 中包含连接字符串。现在这是很酷的部分......应用程序正在使用的任何 .DLL 都可以使用 ConfigurationManager.ConnectionStrings("MyConnectionString").ToString 函数访问应用程序的 app.config。您的 .DLL 将按名称调用连接字符串,并且该调用向上传播到应用程序的 app.config。如果您不想硬编码“MyConnectionString”,那么您只需通过对象的属性将连接字符串传递给 .DLL。

如果您不想重新排列连接字符串“所有权”,只需通过应用程序可以读取的 .DLL 中的静态对象从其自己的配置文件中公开 .DLL 的连接字符串。将其分配给 TableAdapters。

附带说明,如果您已经熟悉并熟悉自定义 DLL,请将所有数据访问逻辑作为数据访问层 (DAL) 移至其自己的 DLL - 取出数据访问逻辑表示层!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多