2

我正在使用Microsoft.Practices.EnterpriseLibrary数据库工具,并且在创建新数据库时使用只是连接字符串信息时遇到问题。仅使用连接字符串打开Microsoft.practices.EnterpriseLibrary数据库

理想我想做到以下几点:

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

是否可以创建只使用连接字符串数据库?

如果是这样,怎么能实现?

回答

11

你也可以做


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

,你会保留的多功能性数据库对象,但使用连接字符串创建它。

0

呃...这是因为CreateDatabase预计名称的连接字符串(如您的应用程序的配置文件中指定),而不是连接字符串本身。

+0

这正是我一直试图做的一个例子,我想知道,如果它是在某种程度上可以做到这一点使用另一种方法。 – 2009-01-02 15:35:53

0

我发现,你可以使用下面的命令

SqlDatabase dbEngine = new SqlDatabase(connectionString); 

不太一样多功能数据库对象,但它适合我的目的。

谢谢大家!

5

我动态构建的飞行连接字符串具有以下其中的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; 
0

它解决了我的问题。根据url中不同的子域连接到不同的数据库,我有一个使用多个数据库的单个Web应用程序。如:


  • abc.test.com ------使用Db_projectABC>

  • def.test.com ------>使用db_ProjectDEF


我用URL重写来解析子域名,并使用子域名来选择它,其存储在主数据库中的数据库连接字符串。

感谢

0
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(); 
+0

这个问题已经有*年*前接受的答案... – alestanis 2012-10-28 19:23:24

相关问题