Heim >Datenbank >MySQL-Tutorial >Kann C# SqlCommand Spaltennamen ohne gespeicherte Prozeduren parametrisieren?

Kann C# SqlCommand Spaltennamen ohne gespeicherte Prozeduren parametrisieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 14:29:10327Durchsuche

Can C# SqlCommand Parameterize Column Names Without Stored Procedures?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn