Eine Datentabelle durchlaufen und die Zeile entfernen

7

Ich habe eine Datentabelle von zwei verschiedenen Servern ausgefüllt. Ich bin in der Lage, Anpassungen vorzunehmen, wo meine Länge & gt; 0 ist, was ich tun möchte, ist die Reihen zu entfernen, die nicht schlagen. Hier ist eine Zusammenfassung von dem, was ich habe

%Vor%     
tvanfosson 24.11.2008, 18:06
quelle

5 Antworten

4

Wenn dr.Length gleich Null ist, gab Ihre Auswahl keine Zeilen zurück. Wenn Sie Zeilen löschen möchten, die nicht Ihren Kriterien entsprechen, würde ich dies als einen anderen Abfragetyp implementieren. Es könnte auch sein, dass ich deine Frage komplett falsch verstehe. Können Sie Ihre Frage aktualisieren, um Ihre SQL anzuzeigen und anzugeben, wo im Codebeispiel das Problem liegt: innerhalb der Schleife oder nach der Schleife, in der Sie Ihren Kommentar haben?

    
tvanfosson 24.11.2008, 18:40
quelle
18

Ich bin mir nicht sicher, ob ich deine Frage vollständig verstanden habe, aber es scheint, dass du versuchst, einen Eintrag aus der Sammlung zu entfernen, während du immer noch über ihn sprichst. (was einen Array-Indexfehler verursacht)

Sie sollten einen Verweis auf jeden Eintrag, den Sie löschen möchten, in einer neuen Sammlung speichern und dann alle neuen Einträge aus der alten Sammlung entfernen:

%Vor%     
Yona 24.11.2008 18:33
quelle
2

Sie müssen ein Datarow außerhalb der Schleife erstellen. Wenn Sie zu der Zeile gelangen, die Sie entfernen möchten, weisen Sie sie der von Ihnen erstellten Zeile zu. und brich die Schleife. Dann unter der Schleife können Sie es entfernen.

%Vor%     
Chris Lees 24.11.2008 18:38
quelle
1

Haben Sie das versucht?

payments.dtPayments.Rows.Remove (dr)

    
Sergio 24.11.2008 18:14
quelle
1

Sie können die Auflistung in umgekehrter Reihenfolge durchlaufen (für (int i = rows.length-1; x & gt; -1; x--)), um mehrere Zeilen zu entfernen, um sicherzustellen, dass Sie keine Indexfehler erhalten.

    
Rick Strahl 24.11.2008 19:23
quelle

Tags und Links