@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

接続文字列を設定するGUIをプログラム上から呼び出す方法

投稿者投稿内容
sasagaki
常連さん
会議室デビュー日: 2008/03/10
投稿数: 20
投稿日時: 2009-01-28 15:56
お疲れ様です。
VB.NET 2005にてWindowsアプリケーションを作成しており、
接続文字列はapp.config内に保存したものをSqlClient.SqlConnectionに渡して使用しています。
開発時やテスト時など、接続先DBを変えたい時には、
app.config内の接続文字列を書き換えて対応しています。

この書き換え作業を、ツール等を使って行えないかを検討しています。

昔のUDLファイルのように、GUIで接続文字列を設定したいというイメージです。

できれば、app.configの接続文字列を設定するときに出てくる画面(※)を
再利用したいのですが、
この画面をプログラムから呼び出すことは可能なのでしょうか?
ご存知の方がいらっしゃいましたら教えてください。

ちなみに、ConnectionStringBuilderクラスとPropertyGridコントロールを組み合わせて
簡単な画面を作ってみましたが、
プログラマがテスト中に使う用途であれば、使えなくはなかったのですが、
できれば、将来的には、インストール担当者や保守担当者、または
導入先のシステム管理者さんに使ってもらうようなレベルの
画面にしたいので、その方法は採っておりません。


(注※)
プロジェクトのプロパティ⇒[設定]ページにて、
接続文字列の横の[...]ボタンを押すと出てくる設定画面のことです。


King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-01-28 16:10
> できれば、app.configの接続文字列を設定するときに出てくる画面(※)を
> 再利用したいのですが、
> この画面をプログラムから呼び出すことは可能なのでしょうか?

おそらく無理ではないでしょうか。
「プログラム」と言うのが何を指しているのかはっきりはわかりませんが。
単純に XML 関連のクラスで編集したら良いと思いますが。

追記:
すみません。
接続文字列が書けない人でも編集できるように、という話でしたね。
最後の行は読み飛ばしてください。

[ メッセージ編集済み 編集者: King 編集日時 2009-01-28 16:16 ]
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-01-28 17:22
私がsasagakiさんと同じ様に開発時とテスト時で接続先を変えたい場合は、ini
ファイルを作成し、VBソース側にて、それを呼び出す方法を取っています。

テスト時はテスト環境文字列を表示し本番環境の接続文字列をコメントアウト。
本番時は逆にテスト接続文字列をコメントアウトして使っています。

テキストなのでメンテナンス画面を別に用意してiniファイルの書き換えをするとか・・・。

[ メッセージ編集済み 編集者: ごん太 編集日時 2009-01-28 17:26 ]
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2009-01-28 18:36
引用:

sasagakiさんの書き込み (2009-01-28 15:56) より:

プロジェクトのプロパティ⇒[設定]ページにて、
接続文字列の横の[...]ボタンを押すと出てくる設定画面のことです。



Webのカスタムコントローラー作ったときは、以下を使いました。
ConnectionStringEditor クラス

Windowsフォーム用もありそうな気がします・・・。
sasagaki
常連さん
会議室デビュー日: 2008/03/10
投稿数: 20
投稿日時: 2009-01-29 11:02
引用:

セラフさんの書き込み (2009-01-28 18:36) より:

Webのカスタムコントローラー作ったときは、以下を使いました。
ConnectionStringEditor クラス



試してみてはいませんが、ヘルプを見る限り、
私が探していたのはコレのような気がします。
Web用なのが惜しい・・・

引用:

Windowsフォーム用もありそうな気がします・・・。



ですよね・・・
ヒントになりました。探してみます。ありがとうございます。
発見したらまた報告しますね。
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2009-01-29 15:12
ConnectionStringEditor クラス を見てみるとUITypeEditorから
派生しているのでWindowsでも関係なく動作すると思います。
ただ、VS上でないとNGかと。。

確かWindowsのXXX.DLLのデータベース接続ダイアログを表示して
接続文字列を取得できたと思います。XXXは思い出せないです。。。
sasagaki
常連さん
会議室デビュー日: 2008/03/10
投稿数: 20
投稿日時: 2009-01-29 16:23
引用:

確かWindowsのXXX.DLLのデータベース接続ダイアログを表示して
接続文字列を取得できたと思います。XXXは思い出せないです。。。



なるほど、
.NET Frameworkのクラスライブラリに無かったとしても
COMでの呼び出しでできるかもですね。

#もしかしてXXXは、oledb32.dllあたりだろうか・・・
#プラットフォームSDKあたりも探してみます。
turutosiya
常連さん
会議室デビュー日: 2003/06/10
投稿数: 49
お住まい・勤務地: 東京都
投稿日時: 2009-01-29 19:49
http://www.codeproject.com/KB/applications/ConnectionStringEditor.aspx

↑これではどうでしょう?

スキルアップ/キャリアアップ(JOB@IT)