Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Probleme mit dataAdapter.Fill()
AlfameisterT
myCSharp.de - Member



Dabei seit:
Beiträge: 154

Themenstarter:

Probleme mit dataAdapter.Fill()

beantworten | zitieren | melden

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.

.
private Nachricht | Beiträge des Benutzers
Yellow
myCSharp.de - Experte

Avatar #avatar-2347.png


Dabei seit:
Beiträge: 476

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
AlfameisterT
myCSharp.de - Member



Dabei seit:
Beiträge: 154

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von AlfameisterT am .
private Nachricht | Beiträge des Benutzers
SeboStone
myCSharp.de - Member



Dabei seit:
Beiträge: 489

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers