Frage

Ich verwende den folgenden Code zum Einrichten der Verbindungszeichenfolge:

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 );

Nachdem ich den oberen Code ausgeführt habe, erwarte ich, dass der Code funktioniert, aber es heißt, dass die Verbindung nicht initialisiert und befehls. CONNECTION -Eigenschaft bleibt immer null.

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 () );
            }

Bitte kann mir jemand sagen, warum die Verbindung nicht initialisiert wird?

Ich verwende den obigen Code in einem Bibliotheksprojekt und möchte DAAB zur Laufzeit konfigurieren.

Vielen Dank

War es hilfreich?

Lösung

Warum kodieren Sie zum einen die Verbindungszeichenfolge? Wäre es nicht sinnvoller, die Verbindungszeichenfolge in der Konfigurationsdatei für Ihre Anwendung zu haben?

Warum müssen Sie die Datenbankfabrik verwenden?

        SqlDatabase db = new SqlDatabase("some connection string from the config");
        DbCommand cmd = db.GetSqlStringCommand(sqlStatement);
        IDataReader reader = db.ExecuteReader(cmd);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top