ich habe ein Datagridview, welches ich mit einer Xml-Datei befülle
Dim filePath As String = „radioliste.xml“
radiodataset.ReadXml(filePath)
DataGridView1.DataSource = radiodataset
DataGridView1.DataMember = „radiosender“
Die Xml-Datei ist nach folgendem Muster aufgebaut:
Jetzt habe ich die Daten im Datagridview steh und möchte diese durchsuchen:
Dim radiosender As DataTable = radioDataSet.Tables(„radiosender“)
Dim view As DataView = radiosender.AsDataView()
view.RowFilter = „Name=’“ & TextBox5.Text & „’“
DataGridView1.DataSource = view
DataGridView1.AutoResizeColumns()
Jetzt habe ich das Problem, dass wenn ich in meine Textbox5 einen Suchtext eingebe und bestätige immer das Suchergebnis angezeigt bekomme, in der der Sendername genau mit dem eingegebenen text übereinstimmt. Was muss ich ändern, dass es reicht, nur einen Teil des Namens eingeben muss und trotzdem ein Ergebnis bekomme.
Etwa so: Ich gebe Antenne ein und bekomme das Ergebnis indem der Name Antenne Bayern ist.
ersetze die Zeile
view.RowFilter = „Name=’“ & TextBox5.Text & „’“
durch
view.RowFilter = „Name like '*“ & TextBox5.Text & „*’“
Der * am Anfang und Ende des Textes steht für eine beliebige Anzahl zeichen. Wenn Du nach alle Einträgen suchen willst, die mit Deinem Suchtext beginnen, dann laß den * am Anfang weg
Aber auf dem ersten Blick könnte ein Ansatzpunkt die Definition des Filters sein. Du forderst ‚Name=Inhalt TextBox5.Text‘. Dieses fordert exakte Gleichheit.
Probier stattdessen mal
view.RowFilter = „Name=’*“ & TextBox5.Text & „*’“
(beachte die Wildcards)
den RowFilter solltest du dann folgendermaßen aufbauen:
„Name LIKE '*“ & TextBox5.Text & „*’“
oder
„Name LIKE '%“ & TextBox5.Text & „%’“
Das „*“ oder „%“ davor und dahinter zusammen mit dem „LIKE“ bedeuten, dass zu dem Suchtext sich anderer Text davor bzw. dahinter befinden kann. Du könntest dann auch nur „Bay“ eingeben und er sollte „Antenne Bayern“ finden.