VS2005を使用してウェブアプリを作成しています。
アプリ内でDBに接続しているのですがローカル環境で開発しているときとウェブサーバで検証する時とで都度接続文字列を変えてWebServiceをアップロードしているのですが動的に判断して適切な接続文字を選択するようにすることは出来ないものでしょうか
開発環境:WINXP VS2005 .NET 2.0
処理の概要は以下です
dim conn as string = DB接続文字列 ・・・この部分を動的に変えたい
dim cmd as string = SQL文字列
dim adapter as new OleDbDataAdapter(cmd,conn)
・
・
といった感じです。
良いアイディアがありましたら教えてください
No.2ベストアンサー
- 回答日時:
こんばんは。
違う接続文字列で接続した場合にエラーになるのであればエラー処理を利用するというのはどうでしょうか。
例えば、とりあえずローカル環境の接続文字列で接続してみてエラーになったらウェブサーバということになるのでそちらの接続文字列で接続する、というようにするとか。(逆でもいいでしょう。)
Try
'ここにローカル環境での接続処理を書く
Catch ex As Exception
'ここにウェブサーバでの接続処理を書く
End Try
ただし、DB接続以外のエラーがないことが条件です。
ありがとう御座います。
目に見える範囲で接続先を制御できるので私のイメージに一番近い解決法に思いました。
catchの中にもう一回try,catchを入れておけばDB以外のエラーを拾うようにしようと思います。
No.3
- 回答日時:
状況が良く分からないのですが、接続先を動的に変更するには
昔からある方法として、以下のものがあります。
(1)初期化ファイル(*.ini)を使う。
(2)環境変数を使う。
尚、あまり勧められませんが、接続文字列で異なる所はSEREVRディレクティブの場合が多いので、
マシン名は同じにしておいて、名前から得られるIPアドレスを、ローカルと実サーバでは別に
設定するといった方法も考えられます。
経験的に見ると、昔は(2)が多かったのですが、最近は(1)の方が圧倒的に多いようです。
iniファイルを使用した場合、実行環境がローカルであるか公開されているウェブサーバー上であるかを動的に判断するのではなく、「ローカルのiniファイルと公開環境のiniファイルを別々に記述して更新しない」という理解でよいでしょうか?
No.4
- 回答日時:
Iniの話が出ているので補足を。
WinAPI:GetPrivateProfileStringは、Iniを扱うプログラムを組んだ事が
ある人なら、まず間違いなく憶えがあるAPIだと思いますが、
VB6までのVBと、VB.NETとでは定義が違います。
以下のページが詳しいと思うので、ご参考に。
全部理解しようとすると、少しややこしいですけどね。
(無理やりVB6までと同じやり方をすると、私の経験では最初の1回目の
使用しか うまく動作しない、などという現象が発生しました)
参考URL:http://www5b.biglobe.ne.jp/~yone-ken/VBNET/speci …
No.5
- 回答日時:
えーと、今更なのかもしれませんが、思い出したことがあったので、一応。
VS2005であれば、My.Settingを使用するのが、いちばん簡単なのかもしれません。
これを使用した際の設定情報は、App.config(コンパイルしたら、xxx.exe.config
だったかな?)に書かれ、中身はXMLなのでテキストエディタで変更可能です。
My.Settingの使用法については、ググったら一杯あるようなので、そちらを
参照してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ただし,その件は」の「ただ...
-
単三の漏電ブレーカーを単二で...
-
モンストのマルチプレイほぼほ...
-
エアコン配線の途中接続はなぜ...
-
Tera Termを起動して新しい接続...
-
ディズニープラスの繋ぎ方
-
VBAをOracleClientがインストー...
-
野良Wi-Fiに接続してしまいまし...
-
ABEMAって接続悪いですか? ず...
-
bebirdというイヤースコープを...
-
自分のスマホゲームの不具合が...
-
VPNのオンデマンド接続とはなん...
-
VBAで「クエリと接続」の画面を...
-
FileZillaを使用してwpXサーバ...
-
今更ですが、ドラクエ9について...
-
ワードに張り付けたURLが開かない
-
内臓SSDの換装について(インタ...
-
蛍光灯安定器の絶縁測定につい...
-
フリーWi-FiでEDGEだと時間切れ...
-
SSDはなくても正常でしょうか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ただし,その件は」の「ただ...
-
Tera Termを起動して新しい接続...
-
エアコン配線の途中接続はなぜ...
-
単三の漏電ブレーカーを単二で...
-
bebirdというイヤースコープを...
-
VPNのオンデマンド接続とはなん...
-
IPアドレスは定期的に変わるも...
-
一般相対性理論の接続
-
モンストのマルチプレイほぼほ...
-
Wi-Fiと位置情報バレについて
-
蛍光灯安定器の絶縁測定につい...
-
Aterm BL1000HWでの奇妙なWiFi...
-
会社説明会に遅刻してしまいま...
-
M.2 PCI Express 接続 M.2 PCIe...
-
ワードに張り付けたURLが開かない
-
ANYDESK 画像が転送されない
-
太陽光発電の配線用ELBについて
-
ワイハイ接続について、 例えば...
-
TeraTermマクロで入力した文字...
-
フリーWi-FiでEDGEだと時間切れ...
おすすめ情報