Laden...

Diese Zeile gehört bereits zu einer anderen Tabelle

Erstellt von beckhj vor 13 Jahren Letzter Beitrag vor 13 Jahren 12.524 Views
B
beckhj Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren
Diese Zeile gehört bereits zu einer anderen Tabelle

Hallo!
Ich habe in einem DataSet das Ergebnis einer Abfrage stehen. Nun will ich da eine neue Zeile hinzufügen, aber nur dann, wenn hier eine Bedingung (ein gewiser Eintrag) noch nicht enthalten ist. Das frage ich so ab:


                DataTable table = new DataTable();
                table = DS.Tables["RQ_MainData"];
                DataRow[] foundRows;
                foundRows = table.Select("ID = '" + myRQ.ID + "'");
                if (foundRows.Length == 0)
               {
                  .......
                MainDS.Tables["RQ_MainData"].Rows.Add(thisRow);


Die Datenbank ist KOMPLETT leer, aber beim ..Rows.Add bekomme ich die Exception "Diese Zeile gehört bereits zu einer anderen Tabelle".

Das kann ich mir nicht erklären.

Hat da jemand einen Tipp bzw. wie sollte ich die Abfrage anders gestalten??

Danke

2.298 Beiträge seit 2010
vor 13 Jahren

Du musst die DataRow aus der alten DataTable löschen bevor du sie der anderen hinzufügen kannst.

Besagt aber auch schon die Meldung.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

B
beckhj Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren

Danke für die Antwort - alleine: Welche DataRow?
Die Tabelle ist noch komplett leer, .Select lieferte ja auch KEIN Ergebnis. Daher mein ich doch, dass es diesen Eintrag noch nicht gibt.

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

vermutlich erstellst Du die DataRow über die DS.Tables["RQ_MainData"], willst sie aber zu MainDS.Tables["RQ_MainData"] hinzufügen.
Wenn das zwie unterschiedliche Instanzen sind, erhältst Du dann die Meldung.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

2.298 Beiträge seit 2010
vor 13 Jahren

Wenn ich deinem Quellcode folge holst du die DataRow aus DataSet 1 und legst sie auf DataSet/Table 2. - In dem Moment ist sie aber noch im DataSet 1.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

J
3.331 Beiträge seit 2006
vor 13 Jahren

Die bisherigen Erklärungen sind völlig korrekt. Aber dein Code hat mit der Fehlermeldung wenig zu tun; deshalb können die Erklärungen nicht vollständig sein. Es fehlt der Hinweis darauf, woher thisRow eigentlich kommt (jedenfalls kann ich nichts erkennen). Jürgen

Siehe auch [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen) in den FAQ, also auch Wie poste ich richtig? 1.1 Erst suchen und in die Doku schauen, dann posten

2.187 Beiträge seit 2005
vor 13 Jahren

Hello beckhj,

Die Methode die du vermutlich suchst ist System.Data.DataTable.ImportRow

Gruß
Juy Juka

B
beckhj Themenstarter:in
5 Beiträge seit 2010
vor 13 Jahren

Hallo MarsStein,

das war's natürlich. Ich habe da den Wald vor lauter Bäumen nicht gesehen!!!!

Danke, beckhj