Hallo,
leider ist dein Code doppelt schlecht:
- zu viel mehrfacher (fast gleicher) Code
- SQL-Strings sollten mittels Datenbank-Parameter aufgebaut werden (s. z.B.
[Artikelserie] SQL: Parameter von Befehlen "Lösungsweg")
Desweiteren würde dein Code bisher, wenn alle Texte leer sind, ein ungültiges SQL-Kommando erzeugen.
Besser ist es, du setzt die Bedingung getrennt zusammen, prüfst dann ob sie nicht leer ist und erzeugst dann das komplette SQL-Kommando.
Und für den eigentlichen Code erzeugst du am besten eine Liste der 5 Texte und prüfst in einer Schleife jeweils ob sie nicht leer sind:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| string condition = String.Empty; int n = 0; foreach (string sValue in values) { if (!String.IsNullOrEmpty(sValue)) { if (condition != String.Empty) condition += " AND "; n++; string sValueParam = "@value" + n; condition += "userid = " + sValueParam;
cmd.Parameters.AddWithValue(sValueParam, sValue); } }
if (!String.IsNullOrEmpty(condition)) { } |