【问题标题】:How to use various connection strings in WPF and DataSet in Debug and Release mode?如何在Debug和Release模式下使用WPF和DataSet中的各种连接字符串?
【发布时间】:2016-04-27 07:07:52
【问题描述】:

我有很多使用 WPF 和 DataSet 编写的 CRUD 应用程序

我的连接字符串是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="Depboard.Properties.Settings.DepartmentConnectionString"
            connectionString="ReleaseServer" providerName="System.Data.SqlClient" />
        <add name="Debug"
            connectionString="DebugServer" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

而且这些应用程序有很多行代码:

private static string ConnStr = ConfigurationManager.ConnectionStrings["ReleaseServer"].
                                                                       ConnectionString;

此外,DataSet 默认使用“ReleaseServer”连接字符串。

当我在DebugRelease 模式之间切换时,我真的很害怕用连接字符串更改所有代码行。

有没有一种简单的方法可以在DataSet 和程序中在DebugRelease 模式之间更改连接字符串而不修改代码?

【问题讨论】:

标签: c# .net wpf connection-string


【解决方案1】:

使用#if DEBUG怎么样?

创建一个用于获取服务器名称的静态类:

public static class ServerName
{
    #if DEBUG

        const string SERVER = "DebugServer";

    #else

        const string SERVER = "ReleaseServer";

    #endif

    public static string Name => SERVER;
}

然后在初始化连接字符串时使用它:

private static string ConnStr = ConfigurationManager.ConnectionStrings[ServerName.Name].ConnectionString;

不过,在我看来,这有点不妥。

应用程序确实应该使用依赖注入和可能的依赖容器,以及诸如存储库模式之类的模式,以将所有初始化代码保存在一个地方(在合适的“接缝”处)。如果正确使用 DI,只有一个地方需要连接字符串。

【讨论】:

  • 谢谢! DataSet 是怎么回事?它始终设置为一个"Depboard.Properties.Settings.DepartmentConnectionString",并且在我在app.config 文件中更改之前它永远不会改变。
  • @StepUp 对于 App.Config 文件,您可以按照此处的说明进行操作:mitasoft.wordpress.com/2011/09/28/multipleappconfig
  • 有更简单的解决方案吗?:)
  • @StepUp 我不知道。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
  • 2023-03-31
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2022-06-20
  • 1970-01-01
相关资源
最近更新 更多