13,002
回編集
細 (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> | |||
<br> | |||
===== app.configまたはweb.configから取得する方法 ===== | |||
テスト環境、本番環境でソースコードを変更せずに接続先を変更することができる。<br> | |||
ただし、ユーザ名とパスワードを平文で記載する場合は、リリースフローや運用でパスワード管理方法を考える必要がある。<br> | |||
<br> | |||
app.configまたはweb.configのadd[@name]で指定された名前は、接続文字列を取得する際のキーになる。<br> | |||
ソースコード上でこのキーを指定することで接続文字列を取得する。<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> | |||
<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を用いる方法 | |||
* トランザクションを用いる方法 | |||
<br> | <br> | ||
===== usingとtry-catchを用いる方法 ===== | |||
一部のオブジェクトは破棄を保証する必要があるので、ソースコードに記載するのではなく、usingで担保するような実装を行う。<br> | |||
スコープから外れた時点で破棄が必要なオブジェクトは自動的に破棄されるが、 usingを用いるとオブジェクトの破棄が明示的になる。<br> | |||
<source lang="c#"> | |||
using System; | using System; | ||
using System.Configuration; | using System.Configuration; | ||
115行目: | 117行目: | ||
} | } | ||
} | } | ||
</source> | |||
<br> | |||
===== トランザクションを用いる方法 ===== | |||
上記の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]] |