Ich versuche, ein Auto-Vervollständigen-Textfeld in Windows Forms mit Daten aus einer PostgreSQL-Datenbank zu implementieren. Lassen Sie mich versuchen, mein Problem zu erklären:C# - Autovervollständigen eines Textfeldes mit Daten aus zwei Feldern
In der Datenbank habe ich eine Tabelle, die firstName und lastName Felder getrennt haben.
In meiner Windows Forms-Anwendung möchte ich die Möglichkeit bieten, entweder mit firstName oder lastName zu suchen und die AutoVervollständigen-Optionen von dort aus bereitzustellen.
Also zum Beispiel, wenn ich einen Eintrag in der Tabelle mit firstName "Goat" und lastName "McGoats" habe, möchte ich "Goat McGoats" (firstName {space} lastName) als Vorschlag in meinem bekommen Windows Form Textfeld, ob ich "G" oder "M" eintippe - der Anfang von Vor- oder Nachnamen.
Im Moment habe ich eine funktionierende Lösung für eine Spalte (d. H.) Ich kann die AutoCompleteSource mit dem ersten Namen allein (oder lastName alleine) füllen und dann würde die Suche daran arbeiten. Im obigen Beispiel würde das bedeuten, dass man "Goat" als Vorschlag eingeben würde - Anmerkung, es schlägt nicht firstName + lastName vor.
Der aktuelle Code sieht so aus:
nameTextBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
nameTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection collection = new AutoCompleteStringCollection();
// Retrieve all rows
cmd.CommandText = "SELECT * FROM users";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
collection.Add(reader["firstName"].ToString());
}
}
nameTextBox.AutoCompleteCustomSource = collection;
Ist die automatische Vervollständigung in C# diese Funktion unterstützen? Oder fügen Sie eine versteckte Listbox unterhalb des Textfelds hinzu und füllen Sie die Werte manuell mit dem Suchstring, um dies zu tun?