Hallo,
in folgender Weise lasse ich mir Daten aus einer MS-SQL-Datenbank ausgeben:
Die Verwendung von AddWithValue() soll SQL-Injections verhindern. Allerdings klappt das bei mir nicht. Wenn ich ListName entsprechend manipuliere, kann ich mehr in der Datenbank operieren, als ich eigentlich soll.
Wo liegt der Fehler? Muss noch etwas am SqlCommand konfiguriert werden? Ist ExecuteReader() nicht die geeignete Methode? Muss ich selbst die Hochkommata maskieren? (Welchen Vorteil hätte dann AddWithValue()?)
Danke und MfG
PS: Bevor jemand fragt: Das Semikolon am Ende des Statements muss nicht sein und Hochkommata ('@ListName') bringen auch nichts...
EDIT: Mein Fehler. Hatte mehrere solcher Statements, aber nicht bei allen die parametrisierten Queries. Hat sich also erledigt.
in folgender Weise lasse ich mir Daten aus einer MS-SQL-Datenbank ausgeben:
Code:
string ListName = ...;
string select = "... WHERE ListName LIKE @ListName";
SqlCommand SqlCommand = new SqlCommand(select);
SqlCommand.Parameters.AddWithValue("@ListName",ListName);
SqlCommand.Connection = ...;
SqlDataReader sdr = SqlCommand.ExecuteReader();
...
Wo liegt der Fehler? Muss noch etwas am SqlCommand konfiguriert werden? Ist ExecuteReader() nicht die geeignete Methode? Muss ich selbst die Hochkommata maskieren? (Welchen Vorteil hätte dann AddWithValue()?)
Danke und MfG
PS: Bevor jemand fragt: Das Semikolon am Ende des Statements muss nicht sein und Hochkommata ('@ListName') bringen auch nichts...
EDIT: Mein Fehler. Hatte mehrere solcher Statements, aber nicht bei allen die parametrisierten Queries. Hat sich also erledigt.
Zuletzt bearbeitet: