SQL Abfrage mit BOOL Antwort

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Rasieel.

    SQL Abfrage mit BOOL Antwort

    Hallo Liebe Vb. Paradise Freunde,

    nun war ich einige zeit äßerst still und habe nun ein anliegen.

    Ich möchte an einen SQL Server einen String schicken und dieser soll prüfen ob er mit einem in der Datenbank hinterlegten identisch ist.

    Aktuell frage ich dies so ab:

    SQL-Abfrage

    1. "SELECT Password FROM users WHERE Username='" + USERNAME + "'"


    Diese Abfrage soll der Server selbst mit True oder False Auswerten also den String Passwort validieren!

    Danke Gruß

    Thomas
    Verkettungen in VB macht man mit & also so:

    SQL-Abfrage

    1. "SELECT Password FROM users WHERE Username='" & USERNAME & "'"



    Und dein genauen Problem liegt jetzt wo ?

    Verkettung von SQL-Statements macht man weder mit & noch mit +.
    Das hier unbedingt lesen.

    Also was definitiv geht ist, die Anzahl an User mit einem angegebenen Namen zu zählen. Dann bekommst Du einen Integer zurück.
    In etwa so. Mein SQL ist ein bisschen eingerostet, deshalb kann es gut sein, dass das nicht ganz stimmt.

    SQL-Abfrage

    1. SELECT Count(ID) FROM users WHERE `Username` = @Username

    Und das @Username wird durch Parameter eingesetzt (Siehe Link).
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    btw:
    Alle Datenbank-Objekte im Sql sollte man immer quoten.
    Kostet nichts, hat keine Nachteile, und vermeidet einfach doofe Fehler, nach denen man sich einen Wolf absucht.

    SQL-Abfrage

    1. SELECT Count(`ID`) FROM `users` WHERE `Username` = @Username
    (sieht auch gleich besser gehighlighted aus, odr? ;))
    BOOL existiert in MySQL nicht wirklich.
    Es gibt zwar theoretisch diesen Hilfsdatentyp, er legt aber letztendlich ein tinyint(1) an (1 Byte).
    Für Abfragen bedeutet es: 0=FALSE und alles andere als 0 ist TRUE.
    Üblicherweise wird 0=FALSE und 1=TRUE verwendet, so dass Count(`ID`) letztendlich auch als logische Funktion "Exists(ID)" angesehen werden kann.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --