Bug in ASP???

  • ASP

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von jmar83.

    Bug in ASP???

    Hallo zusammen

    Ich glaube ich hab nen Bug entdeckt, anders kann ich mir das leider auch nicht erklären.

    Kann mir jemand sagen, warum das obere If-Kriterium nicht zutrifft? (Ausgabe: NO XOR!!is empty)

    Weiter unten habe ich ja "schwarz auf weiss" den Beweis, dass die eine Sache "true" ist, die andere "false"...

    Das sollte doch dem exklusiven oder ensprechen, oder mache ich einen Denkfehler dabei?


    Code hier:

    Visual Basic-Quellcode

    1. <%
    2. Option Explicit
    3. If (Request.QueryString("SlotID") = Null) XOR (Request.QueryString("SlotID") = "") Then
    4. Response.Write "XOR!!"
    5. Else
    6. Response.Write "NO XOR!!"
    7. End If
    8. 'BEWEIS: Request.QueryString("SlotID") = Null
    9. 'Entspricht 'false' -> der text "is null" kommt nicht an den browser!!
    10. If Request.QueryString("SlotID") = Null Then
    11. Response.Write "is null"
    12. End If
    13. 'BEWEIS: Request.QueryString("SlotID") = ""
    14. 'Entspricht 'true' -> der text "is empty" kommt an den browser!!
    15. If Request.QueryString("SlotID") = "" Then
    16. Response.Write "is empty"
    17. End If
    18. %>




    Nachtrag: Wenn ich anstelle von " = Null"* prüfe, stattdessen mit IsNull(...) oder " = VBNull", dann geht's.
    (*was beim sep. If problemlos geht)

    Wobei das Kriterium dann immer noch ist
    GLEICH ""
    ---> und folgedessen: UNGLEICH Null
    ------> des weiteren auch: UNGLEICH VBNull ist...

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „jmar83“ ()

    Bloß weil etwas nicht so funktioniert wie in der Sprache die man gewohnt ist, brauch man nicht direkt über die Sprache herziehen. Man könnte sich mal danach umsehen, was Java ähnlicher ist, in diesem Falle C#.

    Durch etwas Recherche in der MSDN habe ich folgendes gefunden:

    Ein vergleich mit = Null ergibt IMMER Null : http://msdn.microsoft.com/en-us/library/9hck4s70(v=vs.84).aspx

    MSDN Comparison Operators (VBScript) Remarks: schrieb:

    Der vergleichsoperator "=" gibt Null aus, wenn einer der beiden Ausdrücke Null ist.

    Wird XOR ein Null vorgesetzt, egal auf welcher Seite, gibt es Null aus : msdn.microsoft.com/en-us/library/79zdb2f9(v=vs.84).aspx

    MSDN Xor Operator schrieb:

    If one, and only one, of the expressions evaluates to True, result is True. However, if either expression is Null, result is also Null

    Ist die Bedingung eines if Null, so kommt man automatisch in den Else Bereich : msdn.microsoft.com/en-us/library/5h27x7e9(v=vs.84).aspx]

    MSDN If...Then...Else Statement schrieb:

    A numeric or string expression that evaluates to True or False. If condition is Null, condition is treated as False.


    Was lernen wir daraus, immer IsNull, IsNothing und IsEmpty benutzen. ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    ...vielen vielen dank für deine mühe!!!

    ca. 1 stunde habe ich recherchiert während der arbeit (länger konnte ich leider nicht), im ganzen stress konnte ich aber in dieser zeit nichts finden. die anderen mitarbeiter wussten auch nicht genau an was es lag, die verwenden gemäss deren aussage immer IsNull(...), womit sich das problem auch löst.

    dann habe ich den post hier im forum gemacht. ab und zu schaue ich dann zuhause gewisse problem / fragestellungen an welche sich während der arbeit ergeben (wenn es "allgemeine" sachen sind wie dieses problem), gestern war ich allerdings ein wenig verhindert nach der arbeit, dann bist du mir mit deinem post zuvorgekommen. DANKE!!!!!

    solche probleme sind wirklich speziell, und irgendwie nicht auf den ersten blick klar...
  • Benutzer online 1

    1 Besucher

  • 2 Benutzer haben hier geschrieben