1

Web アプリ (スタートアップ プロジェクト) とデータ アクセス用のクラス ライブラリを含む VS2010 ソリューションがあります。接続文字列は、web アプリの web.config で参照される connectionString.config の web アプリに格納されます。クラス ライブラリの既存のコードは、System.Data.SqlClient を使用してデータベースにアクセスします。このコードは、次の方法で接続文字列を取得します。

ConfigurationManager.ConnectionStrings["OurDbName"].ToString();

クラス iibrary には接続文字列の設定がないため、実行時に Web アプリの構成から接続文字列が取得されます。

「ビジュアル」xsd データセットをクラス ライブラリに追加したいと考えています。ただし、これを行うには、デザイン時に接続文字列を定義する必要があり、デザイナーは Web アプリで実行時の既定の構成を認識しません。そのため、現在、クラス ライブラリで xsd データセットを作成して操作するには、(プロジェクトの [設定] ウィンドウを介して) そこに別の接続文字列を定義する必要があります。少なくとも、データセット デザイナーでドラッグ アンド ドロップとコンテキスト メニューの機能が必要な場合はそうします。

実行時に接続文字列を設定する方法を知っています。私が試したいくつかの方法はどれも、設計時に利用できませんでした。

接続文字列をデータ アクセス クラス ライブラリ以外の場所で定義し、設計時にクラス ライブラリの xsd データセットに接続できるようにする方法はありますか?

最初の明白な答えは、データ アクセス クラス ライブラリに接続構成を設定し、必要に応じて他のプロジェクトがそこで参照するようにすることだと思います。ただし、現時点では、それがオプションであることを保証することはできません。

ありがとう!

4

1 に答える 1

1

「データ アクセス クラス ライブラリ以外の場所で接続文字列を定義し、設計時にクラス ライブラリ内の xsd データセットへの接続を引き続き使用する方法はありますか?」

[これは古いスレッドですが、私は同じ問題を抱えていて、他のどこにも完全な答えが見つかりませんでした...だから、将来の参考のために...]

XSD デザイナーの利点を活用し、ステージングと運用の接続設定を変更できるようにするための最良の方法は次のとおりです。 、DataSet は、サーバー エクスプローラーからドラッグして作成されました。これにより、接続情報がクラス ライブラリ app.config と、設計時に使用される Properties.Settings.settings に保存されます。

1) 各 DataTable について、TableAdapter ヘッダー (属性の下でメソッドの上) をクリックし、プロパティを確認します 2) Connection Modifier をPublicに変更します 3) 次に、テーブルにアクセスするコードは次のようになります (クラス ライブラリの名前は DALib) ...

using DALib;
using System.Web.Configuration;

PriceData.averageSalePriceFDataTable priceTable;
DALib.PriceDataTableAdapters.averageSalePriceFTableAdapter priceAdapter
  = new DALib.PriceDataTableAdapters.averageSalePriceFTableAdapter();

priceAdapter.Connection.ConnectionString 
  =  WebConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

priceTable = priceAdapter.GetData( ... parameters ...);

これは、設計のためにクラス ライブラリの接続文字列を使用し、実行時に Web.config から選択します。

于 2013-08-04T12:51:51.123 に答える