- - PR -
接続文字列を設定するGUIをプログラム上から呼び出す方法
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-28 15:56
お疲れ様です。
VB.NET 2005にてWindowsアプリケーションを作成しており、 接続文字列はapp.config内に保存したものをSqlClient.SqlConnectionに渡して使用しています。 開発時やテスト時など、接続先DBを変えたい時には、 app.config内の接続文字列を書き換えて対応しています。 この書き換え作業を、ツール等を使って行えないかを検討しています。 昔のUDLファイルのように、GUIで接続文字列を設定したいというイメージです。 できれば、app.configの接続文字列を設定するときに出てくる画面(※)を 再利用したいのですが、 この画面をプログラムから呼び出すことは可能なのでしょうか? ご存知の方がいらっしゃいましたら教えてください。 ちなみに、ConnectionStringBuilderクラスとPropertyGridコントロールを組み合わせて 簡単な画面を作ってみましたが、 プログラマがテスト中に使う用途であれば、使えなくはなかったのですが、 できれば、将来的には、インストール担当者や保守担当者、または 導入先のシステム管理者さんに使ってもらうようなレベルの 画面にしたいので、その方法は採っておりません。 (注※) プロジェクトのプロパティ⇒[設定]ページにて、 接続文字列の横の[...]ボタンを押すと出てくる設定画面のことです。 | ||||||||
|
投稿日時: 2009-01-28 16:10
> できれば、app.configの接続文字列を設定するときに出てくる画面(※)を
> 再利用したいのですが、 > この画面をプログラムから呼び出すことは可能なのでしょうか? おそらく無理ではないでしょうか。 「プログラム」と言うのが何を指しているのかはっきりはわかりませんが。 単純に XML 関連のクラスで編集したら良いと思いますが。 追記: すみません。 接続文字列が書けない人でも編集できるように、という話でしたね。 最後の行は読み飛ばしてください。 [ メッセージ編集済み 編集者: King 編集日時 2009-01-28 16:16 ] | ||||||||
|
投稿日時: 2009-01-28 17:22
私がsasagakiさんと同じ様に開発時とテスト時で接続先を変えたい場合は、ini
ファイルを作成し、VBソース側にて、それを呼び出す方法を取っています。 テスト時はテスト環境文字列を表示し本番環境の接続文字列をコメントアウト。 本番時は逆にテスト接続文字列をコメントアウトして使っています。 テキストなのでメンテナンス画面を別に用意してiniファイルの書き換えをするとか・・・。 [ メッセージ編集済み 編集者: ごん太 編集日時 2009-01-28 17:26 ] | ||||||||
|
投稿日時: 2009-01-28 18:36
Webのカスタムコントローラー作ったときは、以下を使いました。 ConnectionStringEditor クラス Windowsフォーム用もありそうな気がします・・・。 | ||||||||
|
投稿日時: 2009-01-29 11:02
試してみてはいませんが、ヘルプを見る限り、 私が探していたのはコレのような気がします。 Web用なのが惜しい・・・
ですよね・・・ ヒントになりました。探してみます。ありがとうございます。 発見したらまた報告しますね。 | ||||||||
|
投稿日時: 2009-01-29 15:12
ConnectionStringEditor クラス を見てみるとUITypeEditorから
派生しているのでWindowsでも関係なく動作すると思います。 ただ、VS上でないとNGかと。。 確かWindowsのXXX.DLLのデータベース接続ダイアログを表示して 接続文字列を取得できたと思います。XXXは思い出せないです。。。 | ||||||||
|
投稿日時: 2009-01-29 16:23
なるほど、 .NET Frameworkのクラスライブラリに無かったとしても COMでの呼び出しでできるかもですね。 #もしかしてXXXは、oledb32.dllあたりだろうか・・・ #プラットフォームSDKあたりも探してみます。 | ||||||||
|
投稿日時: 2009-01-29 19:49
http://www.codeproject.com/KB/applications/ConnectionStringEditor.aspx
↑これではどうでしょう? |