.NETアプリで、SQLserverなどのデータベースに接続する際、接続情報が必要ですよね。
アプリを作る度に毎回同じサーバーを指定するのは面倒だし、リプレースやサーバー切り替え時にアドレス変更になると、各アプリの接続情報の修正が必要になったりと色々面倒な事になったりします。
自分の場合、プログラム上にサーバーアドレスは記載せず、外部のファイルから取得するようにしています。
.NETアプリ起動時に、指定されたNASに置いてあるテキストファイルを読み込むという手段です。
Data Source = USER-PC\AAASQLEXPRESS,1433;Initial Catalog = TestDB;Integrated Security = SSPI;Connection Timeout=30;
※赤文字部分を外部ファイル化
まず、用意するのはサーバーの接続情報が記載されたテキストファイル。
3行に接続先の情報が記載されていますが、1行だけでも問題ありません。”;”で終わる1行目だけを取得します。
1行目のサーバーにトラブルが発生したら、別のサーバーを1行目に書き換えれば別のサーバーを利用出来るようになります。
次に.NETアプリ側でテキストファイルを読み込むようにします。
適当にForm1上にTextBox1を配置します。
フォームロードした時に、外部ファイルを読み込むようにコードを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim My_FilePath As String = "c:\db\DB接続情報.txt" If System.IO.File.Exists(My_FilePath) Then Dim My_Text1 As String My_Text1 = IO.File.ReadAllText(My_FilePath, System.Text.Encoding.GetEncoding("Shift-JIS")).Replace(Chr(13), "").Replace(Chr(10), "") ' ;区切りで分割して配列に格納する Dim My_ArrayData As String() = My_Text1.Split(";"c) For Each My_Data As String In My_ArrayData TextBox1.Text = My_Data Exit For Next My_Data Else MsgBox("取得出来ませんでした。", MsgBoxStyle.Critical, "Error") End If End Sub End Class |
実行すると、1行目だけを取得してくれます。
今回は、TextBox1に表示する様にしていますが、グローバル変数などに格納してやれば、利便性が上がるかと思われ。