SQL Like FilterExpression
Geizhals » Forum » Programmierung » SQL Like FilterExpression (3 Beiträge, 72 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
..
Re(2): SQL Like FilterExpression
15.07.2006, 08:35:24
Ich habs "großteils" schon selbst gecodet.

Schau ich habe in meiner Anwendung (N-Tier) ein Userinterface. Dort kannst zB in einer vorhanden Datenlist (GridView) suchen. Im hintergrund übergebe ich für diesen Fall eine FilterExpression an meinen BusinesslogicLayer. Dieser hat in 90% der Fälle schon die Daten und es ist daher blöd eine Fernaufruf zur Datenbank zu machen (und dynamisch eine SQL Abfrage zu bauen). Meine ganzen Businessobjekt-Listen implementieren eine Art von Filter den ich immer in form von nur einen String übergeben möchte / muss. (damit es optimal mit den anderen .net Komponenten zusammenarbeitet)

zB "Description LIKE '%Group%' AND Street NOTLIKE '%Hello%'"

Ich habs nun so gelöst das er mir daraus "Filterobjekte" erstellt (also er teilts bei jedem " OR " oder bei jedem " AND " auf. (loop durch den String pro Zeichen, Abfrage nach " AND " und " OR " usw. usf.)

Ich habe im Endeffekt eine Liste mit 2 Filterobjekten (obriges Beispiel) das jeweils FilterField (Description, FilterTyp, FilterValue) besitzen.

Im moment kann ich allerdings nur AND oder OR damit betreiben. (alles andere wäre nicht sinnvoll ohne Klamern)

Wie ich es schaffe etwas mit Klammern

zB "(Description LIKE '%Group%' OR Description LIKE '%Gruppe%') AND Street NOTLIKE '%Hello%'"

abzubilden ist mir allerdings ein gewaltiges Rätsel. Ist aber im Moment auch nicht so wichtig.

Das mit dem Like war übrigens nur ein Beispiel! Im Moment habe ich LIKE, NOTLIKE, EQUAL oder =, NOTEQUAL oder <>, BIGGER oder >, SMALLER oder < implementiert.

Pfeift wunderbar und die Liste wird mit hilfe von reflection und Delegates gefiltert. Ohne Datenbank Belastung.

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung