페이지 매김을 사용하여 클라이언트 데이터의 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