Thomas Bandt

Über mich | Kontakt | Archiv

C# QueryParser 1.0

QueryParser ist eine kleine C#-Klasse, die es ermöglicht, Such-Abfragen in eine entsprechende SQL-WHERE-Bedingung zu zerlegen. Das Original stammt von Claudius Ceteras, ich habe es für meine Zwecke in C# übersetzt und will es euch nicht vorenthalten, da ich es für ganz nützlich halte.

Der Aufruf sollte selbsterklärend sein. Beispiel:

protected void Button1_Click(object sender, EventArgs e)
{
   QueryParser qp = new QueryParser();
   qp.DefaultOperator = QueryOperator.AND;
   Label1.Text = "SELECT * FROM table WHERE " + qp.Parse(TextBox1.Text, new string[] { "firstname", "lastname", "CV" });
}

Das produziert zum Beispiel bei der Abfrage "make peace AND love NOT war" folgendes Ergebnis:

SELECT * FROM table WHERE (firstname LIKE '%make%' OR lastname LIKE '%make%' OR CV LIKE '%make%') AND (firstname LIKE '%peace%' OR lastname LIKE '%peace%' OR CV LIKE '%peace%') AND (firstname LIKE '%love%' OR lastname LIKE '%love%' OR CV LIKE '%love%') NOT (firstname LIKE '%war%' OR lastname LIKE '%war%' OR CV LIKE '%war%')

Viel Spaß damit. Wenn jemand Bugs findet, oder es erweitert, wäre ich für eine Mail oder einen Kommentar hier dankbar.

Download: QueryParser.zip (2,4 KB)



« Zurück  |  Weiter »