0

我正在创建一个 WPF 应用程序,它读取在运行时在 AppDomain 中创建的 ConnectionString。在我开始使用 DataSet 之前,它运行良好,因为它们指向我的应用程序根目录中的默认 app.config 文件。

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

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

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

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

提前致谢!

4

1 回答 1

0

基本上我能够解决问题:

如果您想知道问题到底是什么:我不希望代码读取 app.config 文件来检索 ConnectionString。由于我启动系统的时候,我读过一次,通过使用系统继续读下去是没有意义的。

顺便说一句,这是带有 SQL SERVER 2012 DB 的 WPF 应用程序。

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

第 1 步:转到设置(项目 > 设置)并创建一个名为 DBConnString 的新项目(选择 ConnectionString 作为类型,选择应用程序作为范围)。并输入一些默认的 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

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

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

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

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

于 2013-03-20T18:10:51.173 回答