2010-01-20 1 views
6

asp.net nTier 응용 프로그램이 있습니다. 데이터 액세스 계층은 DataAdapters가있는 여러 DataTable로 구성된 강력한 형식의 DataSet입니다. 사용자가 로그인하면 (회원 데이터베이스의 테이블에서) 연결할 데이터베이스를 선택합니다. 선택한 연결 문자열을 DataSet 객체에 전달해야합니다.이 객체는 다시 로그인 할 때까지 동일하게 유지됩니다.강력하게 형식화 된 데이터 집합에 대한 동적 연결 문자열

데이터 형식 개체의 부분 클래스를 만들어 연결 문자열을 생성자에 전달할 수 있다고 생각합니다. 이것에 대해 어떻게 생각하는지 모르겠다.

건배

답변

3

당신은 부분 클래스와이 작업을 수행 할 수 있습니다.

은 당신의 입력 데이터 세트 HurrDurr이라고 가정하면이 연결 내부 속성에 액세스 할 때 널 처음 인 경우

public partial class HurrDurr 
{ 
    public HurrDurr(string connex) 
    {  
    this._connection = new global::System.Data.SqlClient.SqlConnection(); 
    this._connection.ConnectionString = connex; 
    } 
} 

_connection 만 초기화됩니다.

+0

윌, vb.net에서 귀하의 제안을 시도했지만 오류 메시지 : "오류 33 _ 연결 '은 DAL.ds1의 구성원이 아닙니다." 어떤 아이디어가 잘못 됐나? – SausageFingers

+0

@fly .ds1 파일이 무엇인지 전혀 알지 못합니다. 입력 된 데이터 세트 도구로 작성된 코드를 살펴볼 수 있습니다 (xsd를 확장하고 코드 파일을보십시오). VB 버전은 다른 변수 이름으로 연결을 저장할 수 있습니다. – Will

+0

미안하지만 나는 분명히해야했습니다. DAL.ds1은 프로젝트 이름 "DAL"과 데이터 세트 이름 "ds1"을 나타냅니다. "ds1"은 xsd에서 생성 된 클래스입니다.이 클래스는 HurrDurr로 간주합니다. 코드를 살펴본 후 테이블 어댑터에 _connection 멤버 변수가 있습니까? 이 부분 클래스를 만들 필요가 있습니까? – SausageFingers

3

마지막으로이 부분을 확인했습니다. 새 모듈에서 테이블 어댑터의 부분 클래스를 만들었습니다.이 클래스는 연결 문자열을 변경해야하는 곳입니다. 실수로 한 실수는 올바른 네임 스페이스를 지정하지 못했기 때문입니다. 다음은

나 동적 테이블이라고 tblOptions 내 테이블 어댑터 중 하나의 연결 문자열을 변경할 수 내가 만든 부분 클래스 : 도움 윌에 대한

Namespace ds1TableAdapters 
    Partial Public Class tblOptionsTableAdapter 
     Sub ChangeConnString(ByVal newConn As String) 
      Me._connection.ConnectionString = newConn 
     End Sub 
    End Class 
End Namespace 

감사합니다, 그것은 나를으로 가고있어 올바른 방향.