背景 我的大多数程序都使用表适配器,连接字符串存储在应用程序设置中。这很好,但从开发环境切换到生产环境时,它是一个真正的PITA。我必须在任何应用程序开始工作之前和之后手动更改连接字符串。
经过一番研究后,我发现了如何动态切换表适配器的连接字符串。通过简单地为connectionString添加自定义属性,我就能够实现这一点。但我仍然需要在每个应用程序的新事件中添加代码,以便在加载时切换连接字符串。 (我的连接字符串在公共DLL中保存为app属性设置。我只在本地保存DLL的一个副本,在生产服务器上保存一个带有生产连接字符串的DLL副本。)
新问题
我想更进一步,让数据集更改它们在使用新事件加载时包含的所有表适配器的连接字符串,或者从VB模块执行相同操作。我一次最多可以有3个数据集。
我确实非常依赖intellisense来帮助我确定哪些方法和属性可用,但我找不到一种方法来检索数据集中的表适配器列表。据我所知,它们似乎不是任何物体集合的一部分。我已经搜索了很多解决方案,但没有运气。
马歇尔
答案 0 :(得分:1)
您可能想要重新配置连接字符串的位置。使您的表示层(即应用程序)在其app.config中包含连接字符串。现在这是很酷的部分......应用程序正在使用的任何.DLL都可以使用ConfigurationManager.ConnectionStrings(“MyConnectionString”)来访问应用程序的app.config。ToString函数。您的.DLL将按名称调用连接字符串,并且调用将传播到应用程序的app.config。如果您不想硬编码“MyConnectionString”,那么您应该通过对象的属性将连接字符串传递给.DLL。
如果您不想重新排列连接字符串“ownership”,只需通过应用程序可以读取的.DLL中的静态对象从其自己的配置文件中公开.DLL的连接字符串。将其分配给TableAdapters。
作为旁注,如果您已熟悉并熟悉看似自定义DLL的内容,请将所有数据访问逻辑移动到其自己的DLL中作为数据访问层(DAL) - 获取数据访问逻辑表示层!