Hahne Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 Hi! Ich komme gerade irgendwie nciht darauf wie ich zwei if abfragen in eine packen kann. dieses hier möchte ich vermeiden: if(var1 > 0) { if(var2 > 0) { ... } } sonder ich möchte das gerne in einer haben. so ungefähr: if((var1 > 0) & (var2 > 0)) { ... } ist sowas möglich? wäre super wenn ihr mir da weiterhelfen könntet! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 4. Juni 2008 Autor Teilen Geschrieben 4. Juni 2008 aaaah sry hab es schon selbst gelöst! naja für andere leute die auch mal so ein problem haben. so kann man die if-abfragen verknüpfen zu einer: if ((txtNachname.Text.Length == 0) | (txtFirma.Text.Length == 0)) { txtVorname.Text = "Fehler!"; return; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 Jap, klappt so. Allerdings empfehle ich dir &&, wobei sich das eig. nur für große Operationen wirklich rentiert, allerdings hab ich's mir so angewöhnt. Unterschied kannst hier lesen M.f.G. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 aaaah sry hab es schon selbst gelöst! naja für andere leute die auch mal so ein problem haben. so kann man die if-abfragen verknüpfen zu einer: if ((txtNachname.Text.Length == 0) | (txtFirma.Text.Length == 0)) { txtVorname.Text = "Fehler!"; return; } *am kopf kratz* So kann es sein, dass eine Firma gegeben ist, aber der Nachname nicht, oder auch andersrum. ;-) Schau dir mal die Seite an, die ich oben gepostet hab. M.f.G. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 4. Juni 2008 Autor Teilen Geschrieben 4. Juni 2008 sry hatte mich mti dem | (oder) und & (und) zeichen versehen. das | muss natürlich geändert werden in &. ich will ja nich das alle ausgefüllt werden sondern das mindestens ein feld ausgefüllt wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cadpax Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 sry hatte mich mti dem | (oder) und & (und) zeichen versehen. das | muss natürlich geändert werden in &. ich will ja nich das alle ausgefüllt werden sondern das mindestens ein feld ausgefüllt wird. Dann ist ja alles gut. ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 4. Juni 2008 Autor Teilen Geschrieben 4. Juni 2008 Jetzt seh ich aber grad das ich noch ein weiteres Problem ahbe. Willa ber nicht extra wieder ein neuen thread aufmachen. und zwar habe ich sozusagen einen filter gebaut wo cih nach dem vor bzw nachnamen suchen kann. meien sql abfrage dafür sieht wie folgt aus: "SELECT Nachname, Vorname, Firma, Land, TelNr, GebDatum FROM TelNum WHERE Nachname='" + strNachname + "' OR Vorname='" + strVorname + "'"; Das Problem ist dass wenn ich OR drin habe ich alle Mitglieder bekomme die den selben Vor bzw nachnamen haben aber ich möchte wenn ich vor und nachname angegeben hab nur diesen einen benutzer haben. mit AND geht es auch nicht weil da gibt er wenn cih nur einen wert eingebe gar nichts aus. wie kann ich das mal realisieren? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
U-- °LoneWolf° Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 in dem du dien statemnet je nach übergebenen parametern zusammen baust Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 4. Juni 2008 Autor Teilen Geschrieben 4. Juni 2008 wie würdest du das denn machen? versteh das net ganz. meinst du erst eien prüfung was der user alles eingegeben hat und aus dem ergebnis dieser prüfung (je nachdem was der user angegeben hat) die sql abfrage zusammenbasteln? wenn du das so meinst wie würdest das denn prüfen? ich hab die ganze zeit select case im kopf aber wüsste jetzt auch net wie ich das damit realisieren könnte Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
SoL_Psycho Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 /edit: Gelöscht da geistige Umnachtung meinerseits Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
U-- °LoneWolf° Geschrieben 4. Juni 2008 Teilen Geschrieben 4. Juni 2008 (bearbeitet) also mit case geht schon mal nicht weil mehrere felder sind die nicht entweder oder abgefragt werden. hier mal ein beispiel string sqlWhere=""; if(textbox1.value!="") { // geht nur weils der erste in der liste ist. bei den folgenden muss noch eine //abfrage dazu sqlWhere+=" WHERE [Spaltenname]='"+textbox1.value+"' "; } if(textbox2.value!="") { if(sqlWhere!="") { sqlWhere+=" AND [Spaltenname]='"+textbox2.value+"' "; } else { sqlWhere+=" WHERE [Spaltenname]='"+textbox2.value+"' "; } } ... so in etwa... keine Ahnung ob der Code so ausführbar ist wenn du deine Controlls in einer liste hats kannst du theoretisch auch ne schleife und ein Case verwenden. Dann würdest du die abfrage nach sqlWhere nur einmal inerhalb der schleife schreiben, aber das sollte aus meiner sicht klar sien Bearbeitet 4. Juni 2008 von U[[ °LoneWolf° Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 4. Juni 2008 Autor Teilen Geschrieben 4. Juni 2008 Stimmt das ist ne gute Idee! Weiss auchs chon wie ich das am Besten umsetze. Besten Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 5. Juni 2008 Autor Teilen Geschrieben 5. Juni 2008 So habe die Prüfugn der Felder jetzt fertig und es Funktioniert alles wunderbar. Keine Angst wenn ihr euch den Code anguckt!!! Es ist keine SQL-Injektion möglich da ich vorher schon mit den übergebenen Strings eine Prüfung gemacht habe ob in diesem illegale Zeichen drin sind. Sprich ich kann in diesen Strings ausschliesslich Buchstaben oder Zahlen haben! //Definierung der einzelnen Variablen bool isNextValue = false; string SqlNachname = ""; string SqlVorname = ""; string SqlFirma = ""; string SqlLand = ""; //Prüfung welche Felder angegeben worden sind und ob es das erste //angegebene Feld im Formular ist. //Erstellung der individuellen SQL-Abfrage if (strNachname != "") { isNextValue = true; SqlNachname = " Nachname='" + strNachname + "'"; } if (strVorname != "") { if (isNextValue == true) { SqlVorname = " AND Vorname='" + strVorname + "'"; } else { isNextValue = true; SqlVorname = " Vorname='" + strVorname + "'"; } } if (strFirma != "") { if (isNextValue == true) { SqlFirma = " AND Firma='" + strFirma + "'"; } else { isNextValue = true; SqlFirma = " Firma='" + strFirma + "'"; } } if (strLand != "") { if (isNextValue == true) { SqlLand = " AND Land='" + strLand + "'"; } else { isNextValue = true; SqlLand = " Land='" + strLand + "'"; } } Eigentlich ist alles selbsterklärend trotzdem wollte ich noch einmal kurz die Geschichte mit dem isNextValue (true/false) erläutern. Es ist lediglich eine Prüfung ob es der erste angegebene Wert im Formular ist oder nicht. Ich muss ja wissen ob ich eine AND davor setzen muss oder nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Honkytonk Geschrieben 5. Juni 2008 Teilen Geschrieben 5. Juni 2008 Kannst übrigens hinters "WHERE" auch die Zusatzbedingung "1=1" packen und dann immer "AND" + Klausel setzen. Spart einige nextValue-Verschachtelungen... Beispiel: SELECT * FROM Blubb WHERE 1=1 AND Vorname='xyz' Gruß, Honky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
U-- °LoneWolf° Geschrieben 5. Juni 2008 Teilen Geschrieben 5. Juni 2008 Hi nochmal @ Hahne: zu dem: ... Keine Angst wenn ihr euch den Code anguckt!!! Es ist keine SQL-Injektion möglich da ich vorher schon mit den übergebenen Strings eine Prüfung gemacht habe ob in diesem illegale Zeichen drin sind. Sprich ich kann in diesen Strings ausschliesslich Buchstaben oder Zahlen haben! ... was machst du mit leuten mit hochkomma im namnen (ich glaub nent sich acson oder so ´)??? @HonkyTonk nette idee werd ich mir merken das spart einige codezeilen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hahne Geschrieben 5. Juni 2008 Autor Teilen Geschrieben 5. Juni 2008 (bearbeitet) Ich habe ja nich alle Symbole verboten. Die Symbole, die wir teilweise auch in Namen benötigen habe ich natürlich zugelassen so wie das Accent ( ´ ). Was ich gesperrt habe sind Symbole die mir gefährlich werden könnten wie z.B. ' & ! = ; < > | u.s.w. Und sone Symbole kommen ganz sicher nicht in Namen vor. Aber auch wenn ich das Zeichen ´ rausfiltern würde, würde z.B. ein Buchstabe mit Accent (z.B. á ) angezeigt werden da das Symbol ja nciht mehr alleine ist sodnern in Kombination mit dem Buchstaben. Bearbeitet 5. Juni 2008 von Hahne Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.