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
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 |
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.
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
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 |
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
Hello beckhj,
Die Methode die du vermutlich suchst ist System.Data.DataTable.ImportRow
Gruß
Juy Juka
Hallo MarsStein,
das war's natürlich. Ich habe da den Wald vor lauter Bäumen nicht gesehen!!!!
Danke, beckhj