Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Bestehende Datenbank Verbindung nutzen um Datenbank auszules


Ivy - Do 24.02.11 12:23
Titel: Bestehende Datenbank Verbindung nutzen um Datenbank auszules
Hey,
ich habe mal wieder ein kleines Problem. Und zwar, ich habe eine Datenbank verbindung in einer Klasse "xyz.cs". Dort ist der ganze Source zum Verbdinden mit der Datenbank drin. Nun möchte ich aber in meiner Hauptklasse "abc.cs" mit dieser bereits bestehenden verbindung auf die Datenbank zugreifen und daten auslesen.
Jedoch ist es der zweiten Klasse irgendwie nicht bekannt, dass es eine DB verbindung gibt und findet auch in der klasse drin keinen connection string...
Meine farge also, wie kann ich von der anderen klasse auf die db verbindung der anderen zugreifen??

das ist meine connection anweisung in klasse xyz.cs:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
public override int MakeConnection ()
      {
        conString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
        conString = conString + prmDataSource;
        conString = conString + ";Extended Properties=dBASE IV;User ID=xyz;Password=";
        prmName = "PassFail";
        connection = new OleDbConnection(conString);

        string sqlStr = "Select * From PassFail";
        da = new OleDbDataAdapter(sqlStr, connection);
        da.MissingSchemaAction = MissingSchemaAction.AddWithKey;

        connection.Open();
   
        da.Fill(DS, "PassFail");

        TablesCount = DS.Tables.Count;
        return 0;
      }


damit möchte ich daten abrufen (klasse abc.cs):

C#-Quelltext
1:
2:
OleDbCommand cmd1 = new OleDbCommand("Select DISTINCT Testresult, Testmode, Date From Passfail");
            OleDbDataReader dr1 = cmd1.ExecuteReader();


Als fehler sagt er mir anchtürlich das es ekeinen connection string gibt :-/

Danke lg
ivy


schwandi - Do 24.02.11 12:32

Hallo!

Ist klar das er die Verbindung nicht findet!

Du musst die Verbindung public deklarieren oder in einer Methode übergeben oder sogar Global speichern

lg schwandi


Ivy - Do 24.02.11 12:37

er findet trotzdem den conString nicht -.-
hab jetzt alles public gemacht.. hätt ich eig schon von selber drauf kommen können^^


thas11 - Di 08.03.11 21:36

Hallo!

Hab auch mal dasselbe Problem gehabt..
Hab meine Datenbankverbindung in ein Singelton gepackt und damit ist diese überall verfügbar und du brauchst nicht immer eine neue Instanz...
Falls du noch nie ein Singleton gemacht hast unter Wiki gibs eine Beispielimplementierung..

lg,
Wolfi