Heim >Datenbank >MySQL-Tutorial >Wie verwende ich eine Liste sicher als SqlParameter für eine SQL IN-Anweisung?
Übersetzen einer Liste
In der Abfrage eingeschlossen gibt eine „IN“-Anweisung an, dass eine bestimmte Spalte einen passenden Wert innerhalb einer bereitgestellten Werteliste haben muss. Bei der Arbeit mit SQL IN-Anweisungen unter Verwendung eines SqlCommand-Objekts kann es zu Verwirrung hinsichtlich der Konvertierung eines List
Im bereitgestellten Codeausschnitt:
cmd.CommandText = "Select dscr from system_settings where setting in @settings"; cmd.Connection = conn; cmd.Parameters.Add(new SqlParameter("@settings", settingsList)); reader = cmd.ExecuteReader();
Der Parameter „settingsList“ stellt eine List
Um eine IN-Abfrage mit SqlCommands sicher auszuführen, sollten Sie den folgenden Ansatz in Betracht ziehen:
string sql = "SELECT dscr FROM system_settings WHERE setting IN ({0})";
In dieser Aussage {0} dient als Platzhalter für die im nächsten Schritt generierte dynamische Parameterliste.
string[] paramArray = settingList.Select((x, i) => "@settings" + i).ToArray();
Hier , das String-Array paramArray wird abgeleitet, indem die SettingsList durchlaufen wird und jeder Wert einem benannten Parameter der Form „@settings0“, „@settings1“ zugewiesen wird. usw.
cmd.CommandText = string.Format(sql, string.Join(",", paramArray));
Die Format-Methode kombiniert die Anweisungsvorlage mit der Parameterliste, was zu einer parametrisierten SQL-Anweisung.
for (int i = 0; i < settingList.Count; ++i) { cmd.Parameters.Add(new SqlParameter("@settings" + i, settingList[i])); }
Einzelne Parameter werden dem SqlCommand-Objekt mithilfe einer Schleife hinzugefügt, die die SettingsList durchläuft, um sicherzustellen, dass jeder Wert einen entsprechenden Parameter hat.
Von Wenn Sie diese Schritte befolgen, können Sie mithilfe eines List
Das obige ist der detaillierte Inhalt vonWie verwende ich eine Liste sicher als SqlParameter für eine SQL IN-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!