Namenssuche nach einzelnen anfangsbuchstaben in mysql



  • Hallo , ich bin noch ein ziemlicher Neuling was das Arbeiten mit MySQl angeht.
    Ich verwenden c# und MySQL
    Wie kann ich einen Namen in einer Kundentabelle suchen, so dass er nur die angebenden Anfangsbuchstaben vergleicht. Also wenn der Kunde Max Musterman heißen würde, und ich "Mu" eingebe möchte ich das alle Kunden die mit "Mu" anfangen angezeigt werden, bei "Mus" alle mit "Mus" und soweiter.
    Volgenden Quiry funktioniert:

    command.CommandText = "SELECT * FROM kunden WHERE VName = ";
    command.CommandText += '"';
    command.CommandText += vname;
    command.CommandText += '"';
    command.CommandText += " AND NName = ";
    command.CommandText += '"';
    command.CommandText += nname;
    command.CommandText += '"';

    Allerdings bekomme ich dann die Namen nur angezeigt wenn sie 100 % übereinstimmen. Ich möchte abber bei jeder Zeicheneingabe einen treffer vorschlag in einem Listbox anzeigen. Habs auch schon mit Like probiert funktioniert aber auch nicht.

    command.CommandText = "SELECT * FROM kunden WHERE VName LIKE ";
    command.CommandText += '"';
    command.CommandText += vname;
    command.CommandText += '"';
    command.CommandText += " AND NName LIKE ";
    command.CommandText += '"';
    command.CommandText += nname;
    command.CommandText += '"';

    PS: Falls sich jemand Fragt warum ich nicht mit den Parametern die Abfrage
    Erstelle also mit:

    command.Parameters.AddWithValue("?vname", tbVorname.Text);
    command.Parameters.AddWithValue("?nname", tbNachname.Text);

    bekomme dabei immer eine Fehlermeldung, daß der Paramter „?vname“ nicht bekannt sei.

    mfg
    sqlneuling



  • Ok Hat sich erledigt ;o)

    Habe vergessen ein '%' Wildcard einzufügen.

    SELECT * FROM tabelle WHERE name LIKE 'A%'
    % ist dabei eine Wildcard.

    Fallls es aber eine bessere Lösung gibt bitte einfach posten. Danke.


Log in to reply