Volltextsuche machen



  • Hallo,

    ich würde gerne eine Art Volltextsuche einbauen.
    D.h. bei jedem Eintrag in mein Textfeld soll die SQL-Query nach passenden Einträgen suchen und mir ausgeben.

    Wie realisiere ich das am besten? Mit einem KeyPress Event?
    Ich habe noch etwas von tsearch gelesen, wäre das eine Möglichkeit?

    Ich hoffe, ihr könnt mir ein paar Tipps geben - vielen Dank!



  • Hallo,

    meine Suche funktioniert - hab dazu das KeyPress Event verwendet.

    Allerding habe ich noch zwei Probleme:

    1.) ich möchte, dass der Cursor immer nach dem letzten Zeichen in der Textbox steht.
    Bei der Eingabe funktioniert dies wunderbar, wenn ich nun aber über die BAckspace Taste lösche, klappt hab ich zwei Sachen die passieren

    if (e.KeyChar == '\b')
                    {
                        if (freitext.Length == 0)
                        {
                        }
                        else
                        {
                            freitext = freitext.Substring(0, freitext.Length - 1);
                            txtFreitext.Select(txtFreitext.Text.Length, 0);
                            txtFreitext.Text = freitext;
                            //txtFreitext.Select(txtFreitext.Text.Length, 0);
                            Freitextsuche(freitext);
                        }
                    }
    

    Wenn der Code txtFreitext.Select(txtFreitext.Text.Length, 0); an der Stelle, an der ich ihn nicht auskommentiert habe einfüge, dann werden in der Textbox immer 2 Zeichen weggelöscht.
    Wenn der Code an der auskommentierten Stelle steht, dann sprint der Cursor immer ganz nach vorne in der Textbox.

    Was muss ich ändern, damit der Cursor auch nur um dieses eine Zeichen weiter rückt?

    2.) Die Methode Freitextsuche(freitext) soll auch ausgeführt werden, wenn der Benutzer die Enft-Taste verwendet.
    Wie ich gelesen habe, gibt diese Taste aber kein Key-Event zurück und muss überschrieben werden.
    Ich hab das mal so versucht, aber wie kann ich dabei meine Methode ausführen?

    protected override void OnKeyPress(KeyPressEventArgs e)
            {
                MessageBox.Show(e.KeyChar.ToString());
                base.OnKeyPress(e);
            }
    

    Würde mich sehr über Eure Hilfe freuen!
    DANKE!





  • Danke für den Hnweis mit Autocomplete, aber ich weiß nicht, ob das auch für mein Problem geeignet ist.

    Bsw. suche ich nach "Federndes Druckstück M4x8"

    Dann soll, egal ob ich "druck" oder "M4" oder "Feder" eingebe, oben gewünschter Datensatz angezeigt werden.

    Mit der KeyPress Methode funktioniert das auch wunderbar. Würde das über Autocomplete denn gehen, da werden ja nur die Anfangsbuchstaben verglichen.

    Oder was wäre sonst noch eine schönere Lösung (zu KeyPress)?



  • Hallo mal wieder!
    Kann mir zu dem Thema vielleicht doch nochmal jemand helfen?!

    Wenn die zu filternden Daten in einer Datatable stecken -> Ausgabe/Anzeige in einem GridView.
    Die Volltextsuche bezieht sich nur auf eine Spalte in der Tablle (es wäre zwar schöner, wenn es sich auf zwei beziehen würde, aber mit einer Saplte wäre ich schon froh).
    Sobald ein Text in die Textbox eingegeben wird, sollen eben nur noch die Einträge im Gridview angezeigt werden, die auch die Zeichen in der Textbox enthalten.

    Wie sieht so ein Lösungsansatz aus? Bzw. was sind typische Stichworte, dass ich zu dem Thema was finden kann?

    Danke Euch 🙂



  • Hat dazu niemand eine Idee?? 😕


Anmelden zum Antworten