Spalten im DataTable vergleichen

lecoeur

Grünschnabel
compartiment ist ein französicher Name, so heißt die Spalte.

Ich bekomme immer "NICHT OK" auch wenn die Bedingung nicht erfüllt ist :(

Aus dem Debuging kann ich folgendes lesen:
dtlivraison.Rows.Count 12 int
obwohl ich nur 4 Datensätze nach dem "Filtern" habe.
Das ist auch normal. Schliesslich arbeite ich inmeiner For und if-Schleife mit dem dtlivraison. Nach der Überlegung sollte ich bestimmt etwas anderes anstatt "dtlivraison" schreiben, da ich in der dtlivraison filtere.

Ich möchte aus der Filterung prüfen, ob alle Datensätze der dritten Spalten kleiner sind als der 4. Spalte. wenn das der Fall ist, dann Label.Text sollte "ist OK" anzeigen, sonst "NICHT OK".

Meine Frage ist dann, wie prüfe ich alle Datensätze aus einer Filterung?
 

ksk

Erfahrenes Mitglied
... kann es sein das der Output "OK" beim nächsten mal durch "Nicht OK" überschrieben wird da die Bedingung nicht zutrifft???
Du brichst die Schleife ab sobald die Bedingunght zutrifft.
Probier mal folgendes:
Code:
// Alle Datensätze wo die 3. Spalte größer ist als die 4. Spalte
var allRowsWhereCol3GreatherCol4 = from row in dtlivraison.AsEnumerable() where row.Field<int>(3) > row.Field<int>(4) select row;
// Falls ein Datensatz in welcher die 3. Spalte größer ist, gefunden wurde
if (allRowsWhereCol3GreatherCol4.Count() > 0)
{
  label.Text = "NICHT OK";
}
else
{
  label.Text = "OK";
}

Lg
ksk