ページングを使用してクライアントデータのGridViewを表示するページを構築しています。私のaspxページには、DataSourceIDがObjectDataSourceに設定されているGridViewがあります。 ObjectDataSourceは、BLLにバインドされ、BLLはDALを介してデータにアクセスします。静的なデータベースを指している間、私はすべてのことを実行している。ただし、各クライアントのデータは独自のデータベースに格納されます。次のステップは、クライアントログインに応じてDALのConnectionStringを変更することです。実行時にASP.NET GridView - > BLL - > DALの接続文字列を変更します。
オプション「ConnectionModifier」を「Public」に設定してDAL TableAdapterを構成しました。私のBLLはDALの接続文字列を変更できますが、BLLにクライアントデータベース名を渡す方法はわかりません。
public class PDFDocumentsBLL {
private PDFTableAdapter _pdfdocumentsadapter = null;
protected PDFTableAdapter Adapter {
get {
if (_pdfdocumentsadapter == null) {
_pdfdocumentsadapter = new PDFTableAdapter();
_pdfdocumentsadapter.Connection = new System.Data.SqlClient.SqlConnection(
ConfigurationManager.ConnectionStrings["template"].ConnectionString.Replace("TEMPLATE", "TESTCLIENT")
);
}
return _pdfdocumentsadapter;
}
}
...
}
私は変数と上記のコードでは、文字列「TESTCLIENT」を交換したいのですが、私はBLLにこの情報を渡す方法についての損失でいます。
これは、最も管理しやすいソリューションではなく、各クライアントのWeb.configにエントリを追加する必要があります。 – Brandon