• ベストアンサー

複数のデータベース使用方法

tora0125と申します。よろしくお願い致します。 データベース:SQLServer2000とSQLServer2005CTP 開発:VisualStadio.NET2003 言語:C# データベースDB_AとDB_Bというものがあり、随時アクセスするデータベースを変更したいと思っております。 cn.ConnectionString = "Data Source=LOCAL" + "; User Id=TEST" + "; Password=TEST" + "; initial catalog=DB_A" + "; persist security info=True;"; 上記のようにコネクションの設定を行っております。主となるデータベースはDB_Aです。 その後、必要となったときにDB_Bにコネクションを変更する方法をどなたかご教授下さい。 拙い文章でわかりずらい箇所があると思いますが、どうぞよろしくお願い致します。 カテゴリー違いでしたら申し訳ございません。

質問者が選んだベストアンサー

  • ベストアンサー
  • 7marine
  • ベストアンサー率36% (59/160)
回答No.3

SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = "select * from A_Table join DB_B..B_Table on A_Table.Col1 = DB_B..B_Table.Col1"; SqlDataReader rdr = cmd.ExecuteReader(); クエリのテーブル名でDBを省略せずに記述では? テーブルの所有者がdbo以外の時は所有者も指定してください

tora0125
質問者

お礼

ご回答ありがとうございました。 とても参考になりました。頂きました情報を元にシステム構築を行いたいと思います。

その他の回答 (2)

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.2

UserIDがDB_AとBD_Bで同じ場合は接続を継続したままでも対象DBを変更できたはず SqlCommand cmd = cn.CreateCommand(); cmd.CommandText = "USE DB_B"; <--使用DBの切り替えを行うクエリ cmd.ExecuteNonQuery(); 検証していないので自信なしです

tora0125
質問者

補足

chibita_papa様 7marine様 お二方一緒に補足してしまうことをご容赦下さい。 私の説明不足で恐縮なのですが、2つのDBから同時にデータを抽出したいと思っております。 つまり、「DB_AのTBALE_AのAカラムとDB_BのTABLE_BのBカラムからデータを抽出」のような感じです。 以上、よろしくお願い致します。

回答No.1

cn.close cn.ConnectionString = "Data Source=LOCAL" + "; User Id=TEST" + "; Password=TEST" + "; initial catalog=DB_B" + "; persist security info=True;"; cn.open では、 外してるような気もしますが

関連するQ&A