tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVS2005-TABLEAdapterについて
記事No3818
投稿日: 2006/06/10(Sat) 10:03
投稿者長谷川
平素からこのサイトにはお世話になっています。

 WIN-XP/VS2005/VB.NET で開発をしております。
 VS2005での新機能[TableAdapter]についての質問です。

 今作っているシステム要件として、
 「システムで実行モードにより(実行モードは仮想ディレクトリ名で判断)
  練習用DB、開発用DBを切り分ける」という要件があります。
 (練習用DB、開発用DBはまったく同じ構造です。)

 つまり、実行時に接続文字列の切り替えを行わなくてはならないのですが、
 [TableAdapter]の接続先を切り替える方法がわかりません。

 今、こんなシステム構成になっています。
 ============================================
 ■アプリケーション層(WEB)
   ├default1.aspx
   └default2.aspx
 ■DBアクセスクラスライブラリ
   └DataSet1.xsd
     ├DataSet1.Designer.vb
     └DataSet1.vb      ←ここにパーシャルクラス
 ============================================
 [DataSet1.vb]で、テーブルアダプタのパーシャルクラスを
 作成したのですが、ここからテーブルアダプタの接続先を
 参照することがどうしてもできません。
 プロパティ[Connection]をPublicに変更してみたりも
 したんですが、状況は変わりません。

 パーシャルクラスから、コネクションを参照/変更する方法を
 ご存知の方がいらっしゃいましたら、ご指南下さい。
 「こんな方法がいいだろう」とか、何でもいいので教えて下さい。

[ツリー表示へ]
タイトルRe: VS2005-TABLEAdapterについて
記事No3820
投稿日: 2006/06/11(Sun) 16:41
投稿者なおこ(・∀・)
お世話になります。

そんなこ難しいことをしなくても、
My.Settings の接続文字列を実行環境によって、プログラム内で書き換えてやれば
いいんではないでしょうか。
Settings.settings を XML エディタなどで開いて、
??ConnectionString の Scope を Scope="User" にしてやると、
プログラム内でいじる事が可能です。

[ツリー表示へ]
タイトルRe^2: VS2005-TABLEAdapterについて
記事No3824
投稿日: 2006/06/12(Mon) 21:39
投稿者長谷川
返信、ありがとうございます。

 早速やってみたところ、直に修正する事はできました。
 しかし、「プログラム内でいじることが可能」とあるのですが
 実際にどのようにいじれば良いか検討がつきません。

 [DataSet1]がNewされた時に書き換えたいのですが、
 Newも[DataSet1.Designer.vb]で隠蔽されていて
 手が出せません…。(ここを書き換えても勝手に自動PG作成されちゃうので)
 ヒントでもリンクでも構いませんので、
 もう少しだけ情報を頂けないでしょうか。

[ツリー表示へ]
タイトルRe^3: VS2005-TABLEAdapterについて
記事No3828
投稿日: 2006/06/13(Tue) 12:19
投稿者なおこ(・∀・)
お世話になります。

HOGEHOGEDatasetTableAdapters.MOGETableAdapter の内部であろうが外部であろうが、
参照している ConnectionString は、
My.Settings.HOGEHOGEConnectionString を見ているので、
TableAdapter を通してなんらかの データベース操作を行う前に、
My.Settings.HOGEHOGEConnectionString = "変えたい値"
でやってやればよいのではないかと思うのですが。

[ツリー表示へ]
タイトルRe^4: VS2005-TABLEAdapterについて
記事No3843
投稿日: 2006/06/14(Wed) 20:15
投稿者長谷川
返信、ありがとうございました。

 教えてもらった内容を参考にしていろいろ評価してみましたが、
 今回は実行クライアント端末ごとに
 ConnectionStringの切り替えを行う必要があったので、
 書き換えはまずいでしょう、との評価に至りました。

 仕方がないので、パーシャルクラスで自分でテーブルアダプタに接続して
 それをFillするだけのメソッドを加えることで回避してしまいました。

 でも、書き換え可能ということがわかって参考になりました。
 ありがとうございました。

[ツリー表示へ]