[EntLib] Connecties worden niet automatisch geopend

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 23-09 17:38
Hallo allemaal,

Ik ben wat aan het uitproberen met de DAAB van de Enterprise Library. Volgens de documentatie worden de connecties naar de database automatisch geopend als een query uitgevoerd wordt, dus ik heb de volgende code:

C#:
1
2
3
4
5
6
7
8
9
10
            Database db = DatabaseFactory.CreateDatabase();
            string sql = "SELECT * FROM tabel";
            DbCommand cmd = db.GetSqlStringCommand(sql);

            using (IDataReader datareader = cmd.ExecuteReader()) {
                while (datareader.Read()) {
                    System.Diagnostics.Debug.WriteLine(datareader.GetInt32(0));
                }

            }


Maar op de using regel krijg ik de melding dat de connectie gesloten is. Als ik de code als volgt aanpas werkt het wel.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
            Database db = DatabaseFactory.CreateDatabase();
            string sql = "SELECT * FROM engineer";
            DbCommand cmd = db.GetSqlStringCommand(sql);
            DbConnection dbc = db.CreateConnection();
            dbc.Open();
            cmd.Connection = dbc;

            using (IDataReader datareader = cmd.ExecuteReader()) {
                while (datareader.Read()) {
                    System.Diagnostics.Debug.WriteLine(datareader.GetInt32(0));
                }

            }


In alle voorbeelden die bijgeleverd zijn wordt het niet op deze manier gedaan. Doe ik iets verkeerd? Ik heb het geprobeerd op een MSSQL en MySql en op beide moet ik handmatig de verbinding openen. Ik heb deze app.config:

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </configSections>
  <dataConfiguration defaultDatabase="SQLServer" />
  <connectionStrings>
    <add name="SQLServer" connectionString="Data Source=192.168.1.1;Initial Catalog=db;User ID=user;Password=pw"
      providerName="System.Data.SqlClient" />
    <add name="MySql" connectionString="Server=server;Database=db;Uid=user;Pwd=pw;"
      providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
</configuration>


Any pointers?

Hail to the king baby!


Acties:
  • 0 Henk 'm!

  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 23-09 17:38
Hmmm, zelf al opgelost :(

Zoek de 2 verschillen:

C#:
1
2
using (IDataReader datareader = cmd.ExecuteReader()) {
using (IDataReader datareader = db.ExecuteReader(cmd)) {

Hail to the king baby!