プログラム

C#プログラミングレッスン

C#での .NETプログラミングを易しく丁寧に解説するメールマガジンです。「C#プログラミング・レッスン」で、.NETプログラミングをマスターしましょう。

全て表示する >

【C#プログラミングレッスン】 No.116-ConfigurationManager(1)

2007/02/06

┏━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━┳━┳━┓
┃☆┃ C#プログラミングレッスン                         ┃_┃□┃×┃
┣━┻━━━━━━━━━━━━━━━━━━━━━━━━━┻━┻━┻━┫
┃ 構成ファイル(1)                                            No.116┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

今回から、構成ファイルについての説明をします。
まずは、.NET Framework 2.0 で新しく追加されたConfigurationManagerクラ
スを使った構成ファイル読み込みについてです。

■──────────────────────────────────
■ DB接続文字列の取得

<configuration>
  <connectionStrings>
    <add name="ConnStr1" connectionString="LocalSqlServer: 
    data source=127.0.0.1;Integrated Security=SSPI;
    Initial Catalog=aspnetdb"  
    providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

のような構成ファイルに記述してあるconnectionString を取得するには、
ConfigurationManager.ConnectionStrings プロパティを使います。

 using System.Configuration;
 ...

   ConnectionStringSettings settings = 
              ConfigurationManager.ConnectionStrings["Connstr1"];
   Console.WriteLine(settings.ConnectionString);
   Console.WriteLine(settings.ProviderName);


なお、ConfigurationManager を使うには、System.Configuration.dll への参
照を追加しておく必要があります。


■──────────────────────────────────
■ 複数の接続文字列を取得する

接続文字列は、構成ファイルに複数記述してある場合もあります。これを順番
に読み込むコードを示します。
※ たいていは、あらかじめ接続文字列の名前が分かっているので、上記コー
   ドの ["Connstr1"] 部分を変更すればよいだけです。

 using System.Configuration;
 ...
 System.Configuration.Configuration config =
     ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
 ConnectionStringsSection csSection = config.ConnectionStrings;
 for ( int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++ ) {
     Console.WriteLine("#{0}", i);
     ConnectionStringSettings cs = csSection.ConnectionStrings[i];
     Console.WriteLine("  Name: {0}", cs.Name);
     Console.WriteLine("  ConnectionString: \"{0}\"", cs.ConnectionString);
     Console.WriteLine("  ProviderName: {0}", cs.ProviderName);
 }

このコードを実行すると、構成ファイルには、一つの接続文字列しか記述して
いないのに、2つの接続文字列が取得できます。それは、Machine.config に
書かれている文字列も読み込みの対象になっているからです。


なお、ADO.NET2.0 の TableAdapter を使って DB に接続する場合は、わざわ
ざ、ConfigurationManager クラスを使う必要はありません。TableAdapter 内
で、接続文字列を取得するようになっています。


┌─┬─────────────────────────┬─┬─┬─┐
│☆│ C#プログラミングレッスン  (ぼぼ週刊)            │_│□│×│
├─┴─────────────────────────┴─┴─┴─┤
│ Published by Gushwell.                                           │
│ Copyright (C) 2004-2007 Gushwell All rights reserved.            │
│ Microsoft MVP Visual Developer - Visual C#(Apr 2006 - Mar 2007)  │
│-------------------- Gushwell's Page ---------------------------- │
│ 窓際プログラマーの独り言  :http://blog.livedoor.jp/gushwell/    │
│ 窓際プログラマーの読書三昧:http://gushwell.jugem.jp/            │
│ C#デザインパターン :                                             │
│  『増補改訂版Java言語で学ぶデザインパターン入門 / 結城 浩(著)』  │
│   のサンプルコードをC#に移植したものを掲載しています。           │
│   移植後のコードの公開は、結城氏の了解を得ています。             │
│   http://blog.livedoor.jp/gushwell/archives/50333227.html        │
└─────────────────────────────────┘

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2004-08-12  
最終発行日:  
発行周期:ほぼ週刊  
Score!: 非表示   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。