Hallo zusammen!
Ich habe da ein kleines Problemchen. Ich möchte ein Programm schreiben mit dem ich Daten in einer Access-DB bearbeiten kann. Dazu habe ich verschiedene Textfelder erstellt in denen die daten angezeigt werden sollen. Zur angenehmeren Verwendung habe ich eine automatische Suche eingebaut die bei jedem Tastendruck eine Abreage in der DB startet und den ersten Wert zurückliefert.
Textfeldeingabe: Ham
Abfrage: SELECT * FROM tabelle WHERE name LIKE 'Ham%'
Den Namen des ersten Datensatzes schreibe ich in das Textfeld und markiere alles was der User davon noch nicht eingegeben hat.
Textfeld: <nicht markiert>Ham</nicht markiert><markiert>burg</markiert>
Und genau da liegt mein Problem. Wenn ich das letzte Zeichen löschen möchte aktualisiert mir meine Abfrage den Rest wieder dazu, ich kann also nichts vom Ende löschen.
Kann mir jemand einen Tipp geben wie ich das Problem löse?
Ich habe schon überlegt immer die Länge des Textes zu speichern und wenn der kürzer wird die aktualisierung zu unterbrechen, aber das geht nicht wirklich.
Ich hoffe mal, der Code bringt schonmal ein wenig was
Gruss
DarkWoods
Ich habe da ein kleines Problemchen. Ich möchte ein Programm schreiben mit dem ich Daten in einer Access-DB bearbeiten kann. Dazu habe ich verschiedene Textfelder erstellt in denen die daten angezeigt werden sollen. Zur angenehmeren Verwendung habe ich eine automatische Suche eingebaut die bei jedem Tastendruck eine Abreage in der DB startet und den ersten Wert zurückliefert.
Textfeldeingabe: Ham
Abfrage: SELECT * FROM tabelle WHERE name LIKE 'Ham%'
Den Namen des ersten Datensatzes schreibe ich in das Textfeld und markiere alles was der User davon noch nicht eingegeben hat.
Textfeld: <nicht markiert>Ham</nicht markiert><markiert>burg</markiert>
Und genau da liegt mein Problem. Wenn ich das letzte Zeichen löschen möchte aktualisiert mir meine Abfrage den Rest wieder dazu, ich kann also nichts vom Ende löschen.
Kann mir jemand einen Tipp geben wie ich das Problem löse?
Ich habe schon überlegt immer die Länge des Textes zu speichern und wenn der kürzer wird die aktualisierung zu unterbrechen, aber das geht nicht wirklich.
Code:
private void TBicao_TextChanged(object sender, System.EventArgs e)
{
if (aktAction)
return; // Abfrage damit das Feld nicht beim beschreiben nochmal aktualisiert wird
int laenge = TBicao.Text.Trim().Length; // Länge des Textes für's markieren speichern
if (laenge == 0)
return;
string SQL = "SELECT * FROM flugplatz WHERE icao LIKE '" + TBicao.Text + "%' ORDER BY icao;";
results = DBConn.abfrage(SQL); // DB-Abfrage über ein eigenes Objekt
currResIndex = 0;
if (results.Length == 0)
{
return;
}
this.sTextfelder(results[0]); // Textfelder aktualisieren
TBicao.Select(laenge, 4-laenge); // Markierung setzen
status.Text = DBConn.error;
aktAction = false;
}
Ich hoffe mal, der Code bringt schonmal ein wenig was

Gruss
DarkWoods