Laden...

DataView.RowFilter mit Like für String und Integer

Erstellt von Bonaqua vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.227 Views
B
Bonaqua Themenstarter:in
35 Beiträge seit 2011
vor 4 Jahren
DataView.RowFilter mit Like für String und Integer

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?

4.931 Beiträge seit 2008
vor 4 Jahren

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}%'"

B
Bonaqua Themenstarter:in
35 Beiträge seit 2011
vor 4 Jahren

Super!
Danke - so klappt es.