よたよたと調べ物をするところ

与太郎プログラマのブログ

QuillとS2Dao.NETで、データベース接続文字列を動的に変更する

via. http://d.hatena.ne.jp/senbei3/20090410


app.configのquillセクションにはデータベース情報()を記述する。そこにはDB接続文字列を書く訳で、ユーザー名とパスワードが必要。
ASP.NETだとweb.configを暗号化すればよいらしいけれどWindowsフォームアプリケーションではそうもいかない。
というわけで、app.configのDB接続文字列にはユーザー名とパスワードは書かずにおいて、アプリ実行時に動的に差し込む方法。当然DBアクセス前に行う必要がある。例えばメインフォームのLoadイベントでやる場合。


メインフォームのメンバ変数に以下を追加。

Protected _dataSourceDict As SelectableDataSourceProxyWithDictionary


メインフォームのLoadイベントに以下を記述。

'DIでデータソース辞書を取得
QuillInjector.GetInstance.Inject(Me)
'app.configのquillセクションで定義したデータソースを取得
Dim ds As DataSourceImpl = _dataSourceDict.DataSourceCollection("sampleDb")
'データベース接続文字列にユーザー名とパスワードを追加
ds.ConnectionString &= ";user id=username;password=mypass"


これで実行時にユーザー名とパスワードを動的に設定できる。