Parece que estoy confundido sobre cómo realizar una declaración In
con un SqlParameter
. Hasta ahora tengo el siguiente código:¿Cómo traduzco una Lista <string> en un SqlParameter para una instrucción Sql In?
cmd.CommandText = "Select dscr from system_settings where setting in @settings";
cmd.Connection = conn;
cmd.Parameters.Add(new SqlParameter("@settings", settingList));
reader = cmd.ExecuteReader();
settingsList
es una List<string>
. Cuando se llama al cmd.ExecuteReader()
, obtengo un ArgumentException
debido a que no puedo asignar un List<string>
a "un tipo de proveedor conocido".
¿Cómo realizo (con seguridad) una consulta In
con SqlCommand
s?
¿A qué tipo * SQL espera su lista convertida? No hay matrices ... –
Necesito que la lista sea una lista de cadenas sql, por ejemplo 'donde se establece ('configuración1', 'configuración2')' – KallDrexx
@KallDrexx, eso no tiene sentido. No hay tal tipo de datos en SQL. Lo mejor que puede hacer es modificar su "Texto de comando" para construir el SQL deseado usted mismo (incrustando los valores de los parámetros dentro del SQL). No puede ser encapsulado en un 'SqlParameter'. –