「C Sharpとデータベース - データベースの接続」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
(Wiki がページ「SQL Serverに接続する」を「SQL Serverに接続する(C Sharp)」に、リダイレクトを残さずに移動しました)
編集の要約なし
24行目: 24行目:


== 接続文字列の準備 ==
== 接続文字列の準備 ==
* ソースコード上に埋め込む
===== ソースコード上に埋め込む方法 =====
:プロパティ値を設定するので、ソースコード上で接続先が変更できる。
プロパティ値を設定するので、ソースコード上で接続先が変更できる。<br>
 
<source lang="c#">
  using System.Data.SqlClient;
  using System.Data.SqlClient;
   
   
42行目: 42行目:
     return builder.ToString();
     return builder.ToString();
  }
  }
 
</source>
* app.configまたはweb.configから取得
<br>
:テスト環境、本番環境でソースコードを変更せずに接続先を変更することができる。
===== app.configまたはweb.configから取得する方法 =====
:ただし、ユーザ名とパスワードを平文で記載する場合は、リリースフローや運用でパスワード管理方法を考える必要がある。
テスト環境、本番環境でソースコードを変更せずに接続先を変更することができる。<br>
 
ただし、ユーザ名とパスワードを平文で記載する場合は、リリースフローや運用でパスワード管理方法を考える必要がある。<br>
:app.configまたはweb.configのadd[@name]で指定された名前は、接続文字列を取得する際のキーになる。
<br>
:ソースコード上でこのキーを指定することで接続文字列を取得する。
app.configまたはweb.configのadd[@name]で指定された名前は、接続文字列を取得する際のキーになる。<br>
:ここでは'''"sqlsvr"'''を利用しているが、特定できれば任意の文字列で問題ない。
ソースコード上でこのキーを指定することで接続文字列を取得する。<br>
 
ここでは'''"sqlsvr"'''を利用しているが、特定できれば任意の文字列で問題ない。<br>
  '''---ソースコード---'''
  <source lang="c#">
  using System.Configuration;
  using System.Configuration;
   
   
58行目: 58行目:
     return ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString;
     return ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString;
  }
  }
   
  </source>
  '''---app.configまたはweb.config---'''
  <source lang="xml">
<!-- app.configまたはweb.config -->
  <configuration>
  <configuration>
   <connectionStrings>
   <connectionStrings>
71行目: 72行目:
   </connectionStrings>
   </connectionStrings>
  </configuration>
  </configuration>
 
</source>
<br><br>


== データベース接続 ==
== データベース接続 ==
SQL Serverに接続する実装方法はいくつ存在するが、ここでは以下のパターンを記載する。<br>
SQL Serverに接続する実装方法はいくつ存在するが、ここでは以下のパターンを記載する。<br>
# usingとtry-catchを用いた実装例
* usingとtry-catchを用いる方法
# トランザクションを用いた実装例
* トランザクションを用いる方法
<br>
<br>
* usingとtry-catchを用いた実装例
===== usingとtry-catchを用いる方法 =====
:一部のオブジェクトは破棄を保証する必要があるので、ソースコードに記載するのではなく、usingで担保するような実装を行う。
一部のオブジェクトは破棄を保証する必要があるので、ソースコードに記載するのではなく、usingで担保するような実装を行う。<br>
:スコープから外れた時点で破棄が必要なオブジェクトは自動的に破棄されるが、 usingを用いるとオブジェクトの破棄が明示的になる。
スコープから外れた時点で破棄が必要なオブジェクトは自動的に破棄されるが、 usingを用いるとオブジェクトの破棄が明示的になる。<br>
 
<source lang="c#">
  using System;
  using System;
  using System.Configuration;
  using System.Configuration;
115行目: 117行目:
     }
     }
  }
  }
 
</source>
 
<br>
* トランザクションを用いた実装例
===== トランザクションを用いる方法 =====
:上記のusingとtry-catchに加えて、トランザクション処理を行う場合の実装例である。
上記のusingとtry-catchに加えて、トランザクション処理を行う場合の実装例である。<br>
<source lang="c#">
  using System;
  using System;
  using System.Configuration;
  using System.Configuration;
173行目: 176行目:
     }
     }
  }
  }
</source>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:C_Sharp]]
[[カテゴリ:C_Sharp]]

案内メニュー