Guten Abend liebe Leute,
ich bin mit meinem (Beginner-)Latein am Ende und benötige einen Schubs in die richtige Richtung. Habe drei Bücher und dieses Forum bereits durchforstet, jedoch ohne mein Problem gefunden zu haben. Deswegen erlaube ich mir ein neues Thema anzulegen.
Grundlage ist eine DataTable ("Adressen") mit allen notwendigen DataView, BindingSource usw. Darauf wende ich bereits erfolgreich den folgenden Suchfilter an:
Private Sub TextBox_Suchen_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Suchen.TextChanged
> DataView_Adressen.RowFilter = "Name LIKE '" + sender.Text + "%' OR Vorname LIKE'" + sender.Text + "%'"
End Sub
Soweit, so gut. Das kann aber jeder und es ist mir zu weing!
Nun möchte ich den Filter "tolerant" gestalten. Dazu habe ich eine Annäherungsfunktion gemäß dem "Damerau-Levenshtein" -Vorbild, welche zwei Strings miteinander vergleicht. Diese funktioniert gut und gibt mir einen Integer (also die Differenz der beiden zu vergleichenden Strings) zurück.
Bei der Umsetzung scheitere ich jedoch wehement daran, der Funktion innerhalb der Filteranweisung den String (der aktuellen Zelle) zu übergeben! Dazu muss jeweils der Wert der aktuellen Spalte "Name" an die Funktion übergeben. Nur wie ist die große Frage?
Folgender Versuch geht natürlich nicht und soll der Anschauung dienen:
Private Sub TextBox_Suchen_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Suchen.TextChanged
> DataView_Adressen.RowFilter = MyDamerauLevenshteinDistance(DataView_Adressen("Name").ToString, sender.Text) <= 2
End Sub
Erwarte ich zu viel vom RowFilter, oder bin bloß ich überfordert?
Ciao, Stephan
ich bin mit meinem (Beginner-)Latein am Ende und benötige einen Schubs in die richtige Richtung. Habe drei Bücher und dieses Forum bereits durchforstet, jedoch ohne mein Problem gefunden zu haben. Deswegen erlaube ich mir ein neues Thema anzulegen.
Grundlage ist eine DataTable ("Adressen") mit allen notwendigen DataView, BindingSource usw. Darauf wende ich bereits erfolgreich den folgenden Suchfilter an:
Private Sub TextBox_Suchen_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Suchen.TextChanged
> DataView_Adressen.RowFilter = "Name LIKE '" + sender.Text + "%' OR Vorname LIKE'" + sender.Text + "%'"
End Sub
Soweit, so gut. Das kann aber jeder und es ist mir zu weing!
Nun möchte ich den Filter "tolerant" gestalten. Dazu habe ich eine Annäherungsfunktion gemäß dem "Damerau-Levenshtein" -Vorbild, welche zwei Strings miteinander vergleicht. Diese funktioniert gut und gibt mir einen Integer (also die Differenz der beiden zu vergleichenden Strings) zurück.
Bei der Umsetzung scheitere ich jedoch wehement daran, der Funktion innerhalb der Filteranweisung den String (der aktuellen Zelle) zu übergeben! Dazu muss jeweils der Wert der aktuellen Spalte "Name" an die Funktion übergeben. Nur wie ist die große Frage?
Folgender Versuch geht natürlich nicht und soll der Anschauung dienen:
Private Sub TextBox_Suchen_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Suchen.TextChanged
> DataView_Adressen.RowFilter = MyDamerauLevenshteinDistance(DataView_Adressen("Name").ToString, sender.Text) <= 2
End Sub
Erwarte ich zu viel vom RowFilter, oder bin bloß ich überfordert?
Ciao, Stephan