Hallo,
ich mache über eine TextBox einen Filter auf eine DataView. Aktuell werden nur Daten abgefragt, die vom Typ string sind.
Nun würde ich aber gerne noch einen weiteren Wert in den Filter aufnehmen. Dieser ist vom Typ Integer.
Bei der Abfrage direkt auf die DB klappt des auch. Bei meinem Filter allerdings nicht. Dort erhalte ich die Meldung Undefinierter Funktionsaufruf CAST().
Hier mal noch mein Code:
dv.RowFilter = string.Format("Name LIKE '%{0}%' OR Strasse LIKE '%{0}%' OR Ort LIKE '%{0}%' OR Land LIKE '%{0}%' OR CAST(Personennummer as CHAR) LIKE '%{0}%'", textBox1.Text);
Wie kann ich sowohl die String-Werte als auch den Integer in den Filter mit aufnehmen?
Der RowFilter
hat eine eigene Syntax (welche sich zwar an SQL anlehnt, aber nicht komplett identisch ist), s. DataColumn.Expression (ab "Expression Syntax").
Bei Zahlenwerten kannst du die normalen mathematischen Operatoren verwenden.
Wenn du jedoch die Zahl wie einen String behandeln möchtest, dann probiere:
"... OR Personennummer LIKE '%{0}%'" // wie bei den anderen Spalten auch
oder
"... OR CONVERT(Personennummer, 'System.String') LIKE '%{0}%'"