翻譯清單
包含在查詢中的「IN」語句指定特定列必須在提供的值列表中具有匹配的值。當使用 SqlCommand 物件處理 SQL IN 語句時,可能會出現關於 List
在提供的程式碼片段中:
cmd.CommandText = "Select dscr from system_settings where setting in @settings"; cmd.Connection = conn; cmd.Parameters.Add(new SqlParameter("@settings", settingsList)); reader = cmd.ExecuteReader();
參數settingsList代表一個List
要使用SqlCommands 安全地執行IN 查詢,請考慮採用以下方法:
string sql = "SELECT dscr FROM system_settings WHERE setting IN ({0})";在此語句中,{0} 作為下一步產生的動態參數清單的佔位符。
string[] paramArray = settingList.Select((x, i) => "@settings" + i).ToArray();這裡,字串陣列paramArray 是透過迭代settingsList 並將每個值分配給以下形式的命名參數而派生的"@settings0", "@settings1"等
cmd.CommandText = string.Format(sql, string.Join(",", paramArray));Format 方法組合語句有參數清單的模板,產生參數化 SQL
for (int i = 0; i < settingList.Count; ++i) { cmd.Parameters.Add(new SqlParameter("@settings" + i, settingList[i])); }使用循環遍歷settingsList 以確保將個別參數新增至SqlCommand 物件中每個值都有對應的參數。 透過以下步驟,您可以有效地執行 IN 查詢與使用 List
以上是如何安全地使用列表作為 SQL IN 語句的 Sql 參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!