Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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!

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;

}

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.

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.

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.

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. ;-)

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?

in dem du dien statemnet je nach übergebenen parametern zusammen baust

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

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 von U[[ °LoneWolf°

Stimmt das ist ne gute Idee! Weiss auchs chon wie ich das am Besten umsetze. Besten Dank!

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. :)

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

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

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 von Hahne

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.