使用AppDomain中的app.config文件而不是Root文件夹

时间:2013-03-18 13:30:06

标签: .net connection-string app-config settings.settings

我正在创建一个WPF应用程序,它读取在AppDomain中运行时创建的ConnectionString。它完美无缺,直到我开始使用DataSet,因为它们指向我的Application Root中的默认app.config文件。

当我第一次加载App时,connString会保存为变量供以后使用。我的第一个直觉是使用该变量进行连接。因为这意味着更少的IO read7write,从而使系统更快。我能够改变连接字符串,但是我需要启动并且不知道在哪里。

现在我想弄清楚,如何获取数据集(或设置)文件来读取位于AppDomain中的app.config而不是位于我的应用程序根文件夹中的默认值。

仅供参考,我创建了一个以商业数据为中心的应用程序。连接字符串根据每个公司的内部配置而变化,因此必须具有可变连接字符串。我再次这样做了。

我的主要目标是将数据集中在一个变量或单个文件中,因为这样可以减少麻烦。

提前致谢!

1 个答案:

答案 0 :(得分:0)

基本上我能够解决问题:

如果您想知道问题究竟是什么:我不希望代码读取app.config文件以检索ConnectionString。从我启动系统开始,我读了一次,在系统的使用中继续阅读它是没有意义的。

BTW,这是带有SQL SERVER 2012 DB的WPF APP。

所以这就是它的完成方式:

第1步: 转到设置(项目>设置)并创建一个名为DBConnString的新项目(选择ConnectionString作为类型和应用程序作为范围)。并输入一些defualt ConnectionString。输入的字符串必须是实数,因为数据集将在设计时读取它。

第2步: 在设置页面上按F7查看代码隐藏。输入此代码:

Partial Friend NotInheritable Class MySettings

Private Sub MySettings_SettingsLoaded(sender As Object, e As System.Configuration.SettingsLoadedEventArgs) Handles Me.SettingsLoaded
    Me.Item("DBConnString") = ConnStringVariable
End Sub End Class

每次Project的任何部分都想要访问Settings类时,此代码将在Loaded Event中激活。这意味着在任何人都可以读取默认连接字符串之前,它将被更改。如果您是新手,请将ConnStringVariable替换为您的实际变量。

第3步: 创建数据集和DataTable,当要求连接时,您将看到一个新选项:DBConnString(MySettings)。选择那个。

请记住,在设计时,DataTables将使用您手动编写的默认ConnString,但在RunTime期间,Settings.vb(或cs)类将用变量替换默认值。

这个简单的技巧将允许您在整个项目中重复使用ConnectionString变量,而不必在每次尝试连接到数据库时访问磁盘!