myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » DataView.RowFilter mit Like für String und Integer
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

DataView.RowFilter mit Like für String und Integer

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Bonaqua
myCSharp.de-Mitglied

Dabei seit: 24.10.2011
Beiträge: 16


Bonaqua ist offline

DataView.RowFilter mit Like für String und Integer

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-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?
24.01.2020 10:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.471
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-Code:
"... OR Personennummer LIKE '%{0}%'" // wie bei den anderen Spalten auch

oder

C#-Code:
"... OR CONVERT(Personennummer, 'System.String') LIKE '%{0}%'"
24.01.2020 10:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Bonaqua
myCSharp.de-Mitglied

Dabei seit: 24.10.2011
Beiträge: 16

Themenstarter Thema begonnen von Bonaqua

Bonaqua ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Super!
Danke - so klappt es.
24.01.2020 11:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Monat.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 29.02.2020 10:45