私は、以下の構成と私の設定ファイルを持っている:あなたが見ることができるように、私はデフォルトの接続としてmyConnectionString
を使用するデフォルトdataconfiguration
を設定しているは、どのようにC#でweb.configファイルからデフォルトの接続文字列にアクセスするには
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
</configSections>
<dataConfiguration defaultDatabase="myConnectionString" />
<connectionStrings>
<add name="myConnectionString" connectionString="Data Source=mydatasource;Max Pool Size=100;Pooling=true; Initial Catalog=MyDB;User ID=Myuser;Password=Password;Connection Timeout=60" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
</configuration>
文字列が、背後にあるコードでは、私はそう下記のコードでmyConnectionString
つまり名前を提供しなくても、この接続文字列にアクセスする方法(C#の):
string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
SqlConnection cnn = new SqlConnection(connectionString);
SqlBulkCopy sbc = new SqlBulkCopy(cnn);
接続文字列の名前のハードコーディングをスキップします。
:
編集:私はあなたの正確なApp.configファイルとLINQPadでそれをテストしている、結果を得ましたデフォルト設定を取得します。 – Crowcoder
残念ながら私は実際にはSqlBulkCopyを使用してデータを一括して挿入しています:SqlConnection cnn = new SqlConnection(connectionString); // SqlBulkCopyオブジェクトの初期化 SqlBulkCopy sbc = new SqlBulkCopy(cnn); – tavier
次に、dataConfigurationセクションを手動で参照して、名前の代わりにインデックスを使用して接続文字列を参照できる名前または信頼性の低い名前を取得できます。 – Crowcoder