Entwickler-Ecke
Sonstiges (.NET) - If-Schleife
bergrath - Di 13.11.07 07:59
Titel: If-Schleife
Hallo Leute.
Ich habe mal ne Frage und zwar wollte ich folgendes wissen. Ich überprüfe die Werte einer DataTable mit einer If-Schleife. Ich prüfe eine Spalte in der nur die Werte 3,5,W,E stehen sollen. Meine If-Schleife sieht folgendermaßen aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| foreach (DataRow row in PVSDataTable.Rows) { if (row["21/22"].ToString() != "GC") { MessageBox.Show("Fehler"); } if (row["23"].ToString() != "D") { MessageBox.Show("Kein C307"); }
if ((row["24"].ToString() != "3") | (row["24"].ToString() != "5") | (row["24"].ToString() != "W") | (row["24"].ToString() != "E")) { MessageBox.Show("fehler in Spalte 24"); }
} MessageBox.Show("Okay"); }} |
Nun meine Frage: Die Werte meiner DataTable haben alle die Werte 3,5,W,E , aber ich bekomme trotzdem die MessageBox mit der Fehlermeldung angezeigt. Es ist doch aber so, daß zuerst alle Bedingungen in der if-Schleife geprüft werden, also daß immer ein Wert zutrifft. Wieso bekomme ich dann immer die Fehlermeldung?
Für Hinweise wäre ich sehr dankbar.
MfG
Moderiert von
jasocul: Topic aus C# - Die Sprache verschoben am Di 13.11.2007 um 08:23
JüTho - Di 13.11.07 09:24
Zunächst einmal: if-Schleife ist Quatsch. Schleifen sind for, foreach, while usw. if ist eine Anweisung.
Überlege doch bitte, was Deine if-Anweisung prüfen soll: Wenn der Wert "3" ist, dann ist die Abfrage "ungleich 5" wahr; also wird die MessageBox aufgerufen. Du willst die MessageBox aber haben, wenn der Wert "ungleich 3" UND "ungleich 5" usw. ist.
Gruß Jürgen
bergrath - Di 13.11.07 09:46
Hi. Danke für die Antwort. Ist mir auch aufgefallen. Deswegen habe ich meinen Code geändert und die Bedingungen mit UND verknüpft, aber ich erhalte weiterhin die Fehlermeldung. Ich habe die Bedingungen auf != gesetzt ( also z.B. !=3) und habe mit && verknüpft, aber es funktioniert nicht.
Die MessageBox wird doch ausgelöst, sobald die Bedingung true ist, oder?
Was muss ich da anders machen?
Für Hinweise wäre ich sehr dankbar.
MfG
JüTho - Di 13.11.07 15:35
Was machst Du eigentlich mit:
Lautet wirklich der
Name der Spalte "24", oder ist es nicht eher die
Nummer der Spalte?
Von welchem Datentyp ist die Spalte? Kannst Du direkt String oder Char vergleichen?
Übrigens: Wenn das Problem auch nach einer Änderung besteht, ist es im Zweifelsfall besser, den geänderten Code neu zu zitieren.
Jürgen
Hajoseb - Sa 17.11.07 18:35
JüTho hat folgendes geschrieben: |
Zunächst einmal: if-Schleife ist Quatsch. Schleifen sind for, foreach, while usw. if ist eine Anweisung.
...
Gruß Jürgen |
Siehe auch
http://www.if-schleife.de
:D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!