Webアプリケーションからデータベースに接続するとき、必要なのはconnectionStrings。
通常、Oracleに繋ぐにはProvider=OraOLEDB.Oracle~
とかData Source=myoracleDB
とか書くけれど、たいていの場合はtnsname.ora
が必要だったりする。
で、いちいち用意してサーバー管理者に「入れて~」というのはものすごくめんどくさい。
なので、tnsname.ora無しで繋いでしまおうというのが以下のconnectionStrings。
Web.config
<connectionStrings>
<add name="OracleDB" connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ホスト名)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=サービス名))); User Id=ユーザー名; Password=パスワード" />
</connectionStrings>
これを書いて、あとはコード側で
DatabaseAccess.cs
using System.Configuration;
string ConnectionString = ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;
とすれば読み出せる。
楽チンである。
tnsname.ora書いたことがある人ならわかると思うけど、これはtnsname.oraに書いてるままのをWeb.configに書いてるだけだったりする。
分解するとこんな感じ
Data Source=(
DESCRIPTION=(
ADDRESS=(PROTOCOL=TCP)(HOST=ホスト名)(PORT=1521)
)
(
CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=サービス名)
)
);
User Id=ユーザー名; Password=パスワード