Parameter in SqlCommand: Alternative für die Parametrisierung von Spaltennamen
In C# sind gespeicherte Prozeduren nicht immer die gewünschte Lösung für die dynamische Parametrisierung von Spaltennamen. Es stellt sich die Frage: Können wir dies erreichen, ohne auf gespeicherte Prozeduren zurückzugreifen?
Die kurze Antwort lautet Nein. SqlCommand unterstützt keine Parametrisierung für Spaltennamen. Wir können die Abfrage jedoch zur Laufzeit dynamisch erstellen.
Um Injektionsangriffe zu verhindern, ist es wichtig zu validieren, dass der Name der Eingabespalte (in diesem Fall „Slot“) genehmigt und erwartet wird. Vor diesem Hintergrund können wir die Abfrage wie folgt erstellen:
// TODO: verify that "slot" is an approved/expected value SqlCommand command = new SqlCommand("SELECT [" + slot + "] FROM Users WHERE name=@name; ") prikaz.Parameters.AddWithValue("name", name);
Mit dieser Methode können wir Eingabewerte wie „@name“ parametrisieren und gleichzeitig die Abfrage basierend auf dem angegebenen Spaltennamen dynamisch erstellen.
Das obige ist der detaillierte Inhalt vonKann C# SqlCommand Spaltennamen ohne gespeicherte Prozeduren parametrisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!