문제

Microsoft.practices.enterpriselibrary 데이터베이스 도구를 사용하고 있으며 사용하는 새로운 데이터베이스를 만드는 데 어려움이 있습니다. 단지 연결 문자열 정보.

이상적으로는 다음을 수행하고 싶습니다.

Database dbEngine = DatabaseFactory.CreateDatabase(
    "Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;");

연결 문자열 만 사용하여 데이터베이스를 만들 수 있습니까?

그렇다면 어떻게 달성 할 수 있습니까?

도움이 되었습니까?

해결책

당신은 또한 할 수 있습니다


Database mydb = new EnterpriseLibrary.Data.Sql.SqlDatabase("connection string here");

또한 데이터베이스 객체의 다양성을 유지하지만 연결 문자열로 만들 수 있습니다.

다른 팁

Connectionstring이 .config에있는 다음과 같이 동적으로 연결 문자열을 구축하고 있습니다.

     Database configdb = DatabaseFactory.CreateDatabase("ConnectionString");

                DbConnectionStringBuilder sb = configdb.DbProviderFactory.CreateConnectionStringBuilder();

                // Set the Connection String fields.

                sb["Data Source"] = targetServer; 
                sb["Initial Catalog"] = targetDb; 
                sb["User ID"] = username;
                sb["Password"] = password;
                sb["Connect Timeout"] = dbTimeout;

                GenericDatabase newDb = new GenericDatabase(sb.ToString(), configdb.DbProviderFactory);
Database db = newDb;

Er ... 그건 CreateAbase가 기대하기 때문입니다 이름 연결 문자열 자체가 아닌 연결 문자열 (앱의 구성 파일에 지정된).

다음 명령을 사용할 수 있다는 것을 알게되었습니다 ...

SqlDatabase dbEngine = new SqlDatabase(connectionString);

데이터베이스 객체만큼 다재다능하지는 않지만 내 목적에 맞습니다.

모두 감사합니다!

내 문제를 해결했습니다. URL의 다른 하위 도메인에 따르면 다른 데이터베이스에 연결하기 위해 많은 데이터베이스를 사용하는 단일 웹 앱이 있습니다. 와 같은:


  • ABC.test.com ------> DB_PROJECTABC 사용

  • def.test.com ------> DB_ProjectDef 사용


URL-Lewrite를 사용하여 하위 도메인 이름을 구문 분석하고 하위 도메인 이름을 사용하여 기본 데이터베이스에 저장된 데이터베이스 연결 문자열을 선택했습니다.

감사

Database objDatabase = new Microsoft.Practices.
                    EnterpriseLibrary.Data.Sql.SqlDatabase(@"Password=mypassword;Persist Security Info=True;User ID=sa;Initial Catalog=DatabaseName;Data Source=192.168.2.1"); 
      // Data Sourc is Your DB Name for ex : systemIp\\SqlExpress

            DbConnection objCon = objDatabase.CreateConnection();
            objCon.Open();
            objDbTransaction = objCon.BeginTransaction(IsolationLevel.ReadUncommitted);
            DbCommand cmd = objDatabase.GetSqlStringCommand(" Select sName from Emp");

            SqlDataReader dr = (SqlDataReader)objDatabase.ExecuteReader(cmd, objDbTransaction);

            StringBuilder sb = new StringBuilder();

            while (dr.Read())
            {
                sb.Append(Convert.ToString(dr[0]));
                sb.Append("  ");
            }
            objDbTransaction.Commit();
            objCon.Close();

            //objDatabase.DbProviderFactory.
            return sb.ToString();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top