2011-05-02 9 views
0
내가 설정 연결 문자열에 다음 코드를 사용하고

: 내가 일을하는 코드를 다음과 기대하는 있지만 연결이 초기화되지 및 command.Connection 속성은 항상 유지 말한다 위의 코드를 실행 한 후데이터 액세스 응용 프로그램 블록 5.0 유창하게 구성

ConfigurationSourceBuilder builder = new ConfigurationSourceBuilder(); 
      builder.ConfigureData() 
        .ForDatabaseNamed ("TestDatabase") 
        .ThatIs.ASqlDatabase() 
        .WithConnectionString ("Data Source=127.0.0.1;User Id=sa;Password=123;Initial Catalog=DataAccessExamples;") 
        .AsDefault(); 

      var configSource = new DictionaryConfigurationSource(); 
      builder.UpdateConfigurationWithReplace (configSource); 
      EnterpriseLibraryContainer.Current 
       = EnterpriseLibraryContainer.CreateDefaultContainer (configSource); 

을 없는.

Database database = DatabaseFactory.CreateDatabase(); 
      DbCommand command = database.GetSqlStringCommand ("Select * from TT"); 

      DbDataReader dbReader = command.ExecuteReader (System.Data.CommandBehavior.CloseConnection); 

      while (dbReader.Read()) 
      { 
       System.Diagnostics.Debug.WriteLine (dbReader[0].ToString()); 
      } 

왜 연결이 초기화되지 않는지 알려주실 수 있습니까?

위의 코드를 라이브러리 프로젝트에서 사용하고 있으며 런타임에 DAAB을 구성하려고합니다.

감사합니다.

답변

0

왜 연결 문자열을 하드 코딩합니까? 응용 프로그램의 구성 파일에 연결 문자열을 갖는 것이 더 합리적이지 않습니까?

왜 데이터베이스 팩토리를 사용해야합니까?

 SqlDatabase db = new SqlDatabase("some connection string from the config"); 
     DbCommand cmd = db.GetSqlStringCommand(sqlStatement); 
     IDataReader reader = db.ExecuteReader(cmd);