C# Autocomplete
Posted: 17 Mar 2025, 02:49
Ich versuche, einem Textfeld eine automatische Funktion zu fügen, die Ergebnisse stammen aus einer Datenbank. Sie sind im Format von < /p>
[001] Letzter, erster Mitte < /p>
< /blockquote>
Derzeit mussten Sie [001] ... um die Einträge zu erhalten. Das Problem ist also, dass ich möchte, dass es vervollständigt wird, auch wenn ich den FirstName First eingeben soll. Also, wenn ein Eintrag < /p>
[001] Smith, John D < /p>
< /Blockquote>
< /p>
< />
war, wenn ich angefangen habe, John zu tippen, sollte dieser Eintrag in den Ergebnissen für das automatische Complete auftreten.
wobei {0} der Platzhalter für die durchsuchte Zeichenfolge ist.
[001] Letzter, erster Mitte < /p>
< /blockquote>
Derzeit mussten Sie [001] ... um die Einträge zu erhalten. Das Problem ist also, dass ich möchte, dass es vervollständigt wird, auch wenn ich den FirstName First eingeben soll. Also, wenn ein Eintrag < /p>
[001] Smith, John D < /p>
< /Blockquote>
< /p>
< />
war, wenn ich angefangen habe, John zu tippen, sollte dieser Eintrag in den Ergebnissen für das automatische Complete auftreten.
Code: Select all
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
txtBox1.AutoCompleteCustomSource = acsc;
txtBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
....
if (results.Rows.Count > 0)
for (int i = 0; i < results.Rows.Count && i < 10; i++)
{
row = results.Rows[i];
acsc.Add(row["Details"].ToString());
}
}
< /code>
Ergebnisse sind ein Datensatz, das die Abfrageergebnisse enthält < /em> < /p>
Die Abfrage ist eine einfache Suchabfrage mit der gleichen Anweisung. Die korrekten Ergebnisse werden zurückgegeben, wenn wir die Autocomplete nicht verwenden und die Ergebnisse einfach in ein Array werfen.SELECT Name from view_customers where Details LIKE '{0}'