Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

C# SqlCommand - kann keine Parameter für Spaltennamen verwenden, wie löst man das?

Wie bereits erwähnt, können Sie die grundlegende Abfrage nicht parametrisieren, sodass Sie die Abfrage selbst zur Laufzeit erstellen müssen. Sie sollten sich auf die weiße Liste setzen die Eingabe dieser, um Injektionsangriffe zu verhindern, aber grundsätzlich:

// TODO: verify that "slot" is an approved/expected value
SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE [email protected]; ")
prikaz.Parameters.AddWithValue("name", name);

Auf diese Weise @name ist noch parametriert etc.