Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在调试和发布模式下在WPF和DataSet中使用各种连接字符串?_C#_.net_Wpf_Connection String - Fatal编程技术网

C# 如何在调试和发布模式下在WPF和DataSet中使用各种连接字符串?

C# 如何在调试和发布模式下在WPF和DataSet中使用各种连接字符串?,c#,.net,wpf,connection-string,C#,.net,Wpf,Connection String,我有很多CRUD应用程序是使用WPF和 我的连接字符串是: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="Depboard.Properties.Settings.DepartmentConnec

我有很多CRUD应用程序是使用WPF和

我的连接字符串是:

<?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>
此外,
DataSet
默认使用“ReleaseServer”连接字符串

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

是否有一种简单的方法可以在不修改代码的情况下,在
数据集
和程序中的
调试
发布
模式之间更改连接字符串?

如果调试,如何使用

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

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,则只有一个地方需要连接字符串。

使用
#如果调试

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

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,那么只有一个地方需要连接字符串。

使用配置转换如何?使用配置转换怎么样?谢谢关于
数据集的内容是什么?它总是设置为一个
“Depboard.Properties.Settings.DepartmentConnectionString”
,并且在我在
app.config
文件中更改它之前,它不会更改。@对于app.config文件,您可以按照这里的说明进行操作:有更简单的解决方案吗?:)@steppup不是我所知道的:(谢谢!关于
数据集
的内容是什么?它总是被设置为一个
“Depboard.Properties.Settings.DepartmentConnectionString”
,并且它永远不会改变,直到我在
app.config
文件中更改它为止。@app.config文件的升级,您可以按照这里的说明进行操作:有更简单的解决方案吗?:)@据我所知,别这么做(