Laden...

Probleme mit dataAdapter.Fill()

Erstellt von AlfameisterT vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.310 Views
A
AlfameisterT Themenstarter:in
154 Beiträge seit 2005
vor 16 Jahren
Probleme mit dataAdapter.Fill()

Hallo,

als Datenbank verwende die MSSQL2005Express Version.

In meiner Klasse habe ich folgende Methode um Daten aus der DB zu holen.

protected override void InitData()
{
dtData = new DataTable(this.sTableName);
SqlDataAdapter da = new SqlDataAdapter("select * from " + this.sTableName, new SqlConnection(sConnectionString));
da.Fill(dtData);
}

Weiterhin halte ich in meiner Klasse ein 2. SQLConnection Objekt welches in der selben DB auf eine andere Tabelle für abfragen zuständig ist.

Nun ist das Problem das beim 2. bis 3. Aufruf meiner Methode InitData plötzlich Datensätze aus einer anderen Tabelle. Genau genommen aus der Tabelle wofür ich das 2 SQLConnection-Objekt verwende.

Wie kann es dazu kommen?
Bin wirklich ratlos. Da auch bei InitData jedesmal ein neuer DataAdapter angelegt wird, mit neuem Connection-Objekt. Auch der String sTableName ändert sich nicht.
Dennoch bekomme ich falsche Datensätze.

.

476 Beiträge seit 2004
vor 16 Jahren

hallo AlfameisterT,

für was benötigst du 2 Connections? Wenn beide zur selben Datenbank verbinden ist das nicht erforderlich. Welche Daten abgerufen werden bestimmt deine SELECT-Anweisung, da sie "select * from "+ this.sTableName lautet nehme ich an, du veränderst den Inhalt von sTableName bevor deine Methode InitData das Zweite oder Dritte mal aufgerufen wird. Überprüfe doch mal dahingehend den Code.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

A
AlfameisterT Themenstarter:in
154 Beiträge seit 2005
vor 16 Jahren

Danke für deine Antwort.

Ich habe wirklich Stunden geprüft, getestet und gedebuggt. Keine Antwort auf das Problem gefunden.

Warum 2 Connection-Objekte.
Es sind halt 2 Klassen mit je einem Connection-Objekte. Der Anwendungsfall benötigt halte beide Funktionalitäten. Die beiden Klassen laufen auch in verschiedenen Threads.

Es kam vor, das beide Connection-Objekte gleichzeitige eine DB-Anfrage gestartet haben.

Vielleicht gibts da ja im .Net-Framework. Keine Ahnung.

In den paar Zeilen Code und der Variablen sTableName (ist auch ReadOnly) ist eigentich kein Fehler.

Das Problem besteht nun nicht mehr. Habe das Verhalten des anderen Threads etwas geändert.

S
489 Beiträge seit 2007
vor 16 Jahren

Bei mehreren Threads sind mehrere Connection Objekte ok. Aber wie schon geschrieben wurde, es wird wohl am SQL Statement liegen! Haste das mal überprüft? Und hast Die dieses Statement mal z.B. mit dem SQL Management Studio auf der Datenbank ausgeführt? Kommen da dann andere Daten?