- 締切済み
VB2005のデータソースの切り替えについて
VB2005を使用して社内の業務ソフトウェアの開発をしています。 本番環境ではデータベースソフトとしてSQL Server 2005を使用する予定になっているのですが、開発環境ではAccessのmdbファイルを使用したいと考えています。 この場合、Accessのファイルをデータソースとして開発したプロジェクトに含まれる、app.configの <connectionStrings> <add name="テストDB.My.MySettings.テストDBConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\テストDB.mdb" providerName="System.Data.OleDb" /> </connectionStrings> の部分を、 <connectionStrings> <add name="テストDB.My.MySettings.テストDBConnectionString" connectionString="Data Source=[サーバー名];Initial Catalog=テストDB;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> と書き換えても、うまく動作しません。 データベースに接続するのがOleDbConnectionになっているため、データソースをSQL Serverに変えても動かないのはわかるのですが、開発時にAccessを使用して、本番環境ではSQL Serverを使用する、といった切り替えを簡単にできる方法というのはあるのでしょうか? SQL Server同士であればapp.configの接続文字列を変えるだけで簡単に変更することができたのですが...
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Hayashi_Trek
- ベストアンサー率44% (366/818)
SQLサーバ以外のデータベースも使用する可能性があるなら、 OleDBの方で作成しなければなりません。 もちろん、OleDBで作るとSQLサーバに接続した場合にはSqlDBより遅いみたいですが仕方がありません そのかわり、Access,SQLサーバ,オラクル等、色々なデータベースと接続できます。
- redfox63
- ベストアンサー率71% (1325/1856)
AccessDataSourceでは無くSqlDataSourceの派生クラスでMDBを指定すれば良いのではないでしょうか データソースを追加する際に『データベース』を選択 『新しい接続』ボタンをクリック 『接続の追加』ダイアログで「変更」ボタンをクリック データーソースの種類を『Microsoft Access データベースファイル』に変更してMDBファイルを指示してやれば良いように思います
補足
ご回答ありがとうございます。 新しいデータソースを追加し、「新しい接続」を選びますよね。その後、データソースの種類を「Microsoft Access データベースファイル」を選択すると、Accessのファイルをデータソースとしたデータセットが作成されるのはわかります。 この場合、Accessを使用して作成したデータソースは、接続文字列がSQL Serverを使用して作成したものと違う名前を付けなくてはいけませんよね? また、その次に出てくるデータセット名もSQL Serverを使用したものと違うものを使用しなくてはいけません。 新しいデータソースを追加したのだから、当然接続文字列やデータセット名を違うものにしなきゃいけないのも納得がいきます。 問題は、データセット名が異なると、Accessに切り替えしようとすると、SQL Serverを使用したデータセット名を使って開発した部分を、Accessで作成したデータセット名に書き換えないと動作しないと思うのですが... そうなってくると、各フォームに張り付いているコントロールのデータ連結を全部やり直さないといけなくなるので、SQL Server同士の「app.configの接続文字列を変える」といった簡単な方法での切り替えは出来ないように思いますがいかがでしょうか?
補足
>OleDBの方で作成しなければなりません。 >そのかわり、Access,SQLサーバ,オラクル等、色々なデータベースと接続できます。 SQL Serverを使用するときは、SqlClient.SqlConnectionを使用しないとダメだと認識していたのですが、OleDBConnectionでもSQL Serverに接続できるのでしょうか? 接続できるとしたら、是非こちらのやり方を研究してみたいと思います。