Frage

Ich bin mit den Microsoft.Practices.EnterpriseLibrary Database Tool und ich habe Probleme beim Erstellen eine neue Datenbank mit nur der Verbindungszeichenfolge Informationen.

Im Idealfall würde Ich mag folgendes tun:

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

Ist es möglich, eine Datenbank mit nur die Verbindungszeichenfolge zu erstellen?

Wenn ja, wie kann es erreicht werden?

War es hilfreich?

Lösung

Sie können auch tun


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

und Sie werden die Vielseitigkeit des Database-Objekts beibehalten, aber es mit einer Verbindungszeichenfolge erstellen.

Andere Tipps

Ich bin der Aufbau eine Verbindungszeichenfolge on the fly dynamisch mit dem folgenden, wo Connectionstring in meinem .config ist

     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;

Ihm ... Das ist, weil die Createdatabase name erwartet von einer Verbindungszeichenfolge (wie in Ihrem App-Konfigurationsdatei angegeben), nicht die Verbindungszeichenfolge selbst.

Ich entdeckte, dass Sie den folgenden Befehl verwenden können ...

SqlDatabase dbEngine = new SqlDatabase(connectionString);

nicht ganz so vielseitig wie das Datenbankobjekt, aber es funktioniert für meinen Zweck.

Danke an alle!

Es ist mein Problem gelöst. Ich habe eine einzelne Web-App viele Datenbank nach dem anderen Sub-Domain in der URL der unterschiedlichen Datenbank zu verbinden. wie zum Beispiel:


  • abc.test.com ------> die Db_projectABC mit

  • def.test.com ------> die db_ProjectDEF mit


Ich verwende url-rewrite den Sub-Domain Namen zu analysieren, und verwenden Sie den Sub-Domain Namen es ist Datenbank-Verbindungszeichenfolge, die in der Hauptdatenbank gespeichert zu wählen.

Danke

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top