6

私のC#アプリケーションの使用DataSetTableAdapters. これらは、VS2008 GUI ツールから生成されます。

例:

プロジェクトを右クリック - > 新しい項目の追加 - > DataSet

このメソッドは、接続文字列を に自動的に追加しますapp.config

ただし、これは接続文字列のハードコードされた方法です。接続文字列を簡単に変更したい。しかし、データセットを使用すると、アプリケーションプロパティから接続文字列が取得されます。この状況の解決策はありますか?

ここに画像の説明を入力

これは、 Settings.Designer.csファイルの接続文字列ストアです。

    namespace WindowsFormsApplication2.Properties {


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

        public static Settings Default {
            get {
                return defaultInstance;
            }
        }

        [global::System.Configuration.ApplicationScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
        [global::System.Configuration.DefaultSettingValueAttribute("Data Source=SLCERT\\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True")]
        public string TestDataBaseConnectionString {
            get {
                return ((string)(this["TestDataBaseConnectionString"])); // this is the connection string get from the dataset's
            }
        }
    }
}

app.config が含まれています

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication2.Properties.Settings.TestDataBaseConnectionString"
            connectionString="Data Source=SLCERT\SQLEMK;Initial Catalog=TestDataBase;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>
4

3 に答える 3

6

ローカル テスト サーバーと運用/テスト サーバーの間で手動で変更する必要がないように、これを尋ねると思います。

「方法: Web アプリケーション プロジェクトの配置時に Web.config を変換する」を参照してください。

app.config ではなく web.config に関するものですが、考え方は同じです。

ps。VS 2010 以降のみ

于 2013-03-25T08:24:35.820 に答える
4

.NET 4.0 でのみ (ネイティブに) サポートされているため、JP Hellemons が構成変換を行うように提案した以外に、他にできることがあります。構成ファイルのセクションには任意の数の接続文字列を追加できる<connectionStrings/>ため、"DebugConnectionString" と "ReleaseConnectionString" などを追加します。

ここで、環境が変更されるたびに介入なしでこれらを使用するために、トレース定数を使用できます。定数セットを使用してコンパイルしている Visual Studio のローカルでDEBUG、リリース用に展開するときにそれが存在しないとします。次に、次のようなことができます。

#if DEBUG 
    return ConfigurationManager.ConnectionStrings["DebugConnectionString"];
#else
    return ConfigurationManager.ConnectionStrings["ReleaseConnectionString"];
#endif
于 2013-03-25T08:29:55.413 に答える
2

app.config で

<configuration>
<configSections>
</configSections>
<connectionStrings>
    <add name="DBCS" connectionString="Data Source=|DataDirectory|\Database.sdf;password=Password" 
        providerName="Microsoft.SqlServerCe.Client.3.5" /> 
</connectionStrings>

そして、このようにアクセスします

static string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString.ToString();

含む

System.Configuration;

名前空間

于 2013-03-25T08:34:05.630 に答える