C# MySQL - LIKE mit Parametern

Soll die Abfrage mehr können als im Erstpost geschrieben? Denn für den geschilderten Fall ist "like" ...ungünstig...
Das wäre ein klassischer Fall von
Con.Command.CommandText = "SELECT * FROM rechner WHERE Inventarnummer in ('r102','r201');";

Gruß
Azdak
 
ich kann dir einen kompletten Baukasten geben der das ganze SQL Managment übernimmt! Nur hab ich den für MS SQL gemacht. Bei dir muss man das bisschen anpassen!
Was du letztendlich dann machen muss, deine Variable deklarieren (@param => "r12" bla was auch immer) und Ausgabeform auswählen, DataSet, DataRow, Scalar.

Zur deine Abfrage!

Eigentlich sollte es so aussehen:

Code:
String sql = String.Concat("SELECT * FROM rechner WHERE ", SearchByProp.ToString(), " LIKE '%' + @keyword + '%'");

Zumindest kann MS SQL diese Abfrage richtig ausführen!

Da dein Keyword ein Varchar darstellt (oder nvarchar, aber bitte nicht als INT deklarieren, da du sonst einen CAST error kriegst) MUSST du Prozentzeichen mit deiner Variable zusammenführen, innerhalb deiner QUERY und nicht ausßerhalb. Damit meine ich die Doppelten Hochkommas!

Wenn du genau wissen willst:

Dein Code wird letztendlich so aussehen:

Code:
declare @keyword nvarchar(max) --von mir aus MAX oder 4000 oder was auch immer

set @keyword = 'r123'

select * from rechner where [deine_spalte] like '%' + @keyword + '%'


Ich empfehle dir die SQL Abfragen in eine andere Klasse zu kapseln. Sonst muss du jeden Fehlerhaften scheiß per in deinen 1.000.000 Zeile Code rauslesen und korrigieren. Wenn du es kapselst hast du dann auch automatisch volle Kontrolle über alle abfragen. Dann musst du dir keine Gedanken über deine Programmierfehler machen. Dann kannst du immer davon ausgehen, dass deine Query und nicht dein Code Fehlerhaft sei.
 
Zuletzt bearbeitet:
Zurück
Oben