Foros del Web » Programación para mayores de 30 ;) » .NET »

sql dinamica en vb.net

Estas en el tema de sql dinamica en vb.net en el foro de .NET en Foros del Web. hola, tengo un problema bastante complejo (para mi). Tengo una base de datos echa con VB.net (2010) en SQL Compact 3.5. El problema es que ...
  #1 (permalink)  
Antiguo 18/10/2012, 18:32
 
Fecha de Ingreso: abril-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 1
sql dinamica en vb.net

hola, tengo un problema bastante complejo (para mi). Tengo una base de datos echa con VB.net (2010) en SQL Compact 3.5. El problema es que quiero hacer una query que verifique que el contenido de una columna se encuentre en una lista de strings de cantidad no definida, lei algo de sql dinamicas echas por codigo (siempre las hago con el generador de consultas) y queria saber como es porq se me complica

PD: Reitero que no se la cantidad de elementos de la lista, el usuario define la cantidad de palabras y necesito que verifique si alguna de esas es el contenido de la tabla

Esta es la consulta que genere con el vb.net, solamente necesitaria que @ lista sea efectivamente una lista de strings

SELECT p1.Codigo_producto, p1.Nombre_categoria, p1.Nombre_material, p1.Nombre_producto, p1.Material_secundario, p1.Precio, p1.Stock, p1.Descripcion, s1.Categoria
FROM Productos AS p1 INNER JOIN Subcategorias AS s1 ON p1.Nombre_categoria = s1.Nombre
WHERE p1.Nombre_material IN (@lista)

Última edición por carabaolaza; 18/10/2012 a las 18:50
  #2 (permalink)  
Antiguo 19/10/2012, 09:21
 
Fecha de Ingreso: julio-2010
Ubicación: santiago
Mensajes: 21
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: sql dinamica en vb.net

si es una lista de palabras ¿No será mejor colocal un LIKE en vez del IN? ¿la lista de string es una lista generica o un array? y recuerda que si estás haciento consultas en la misma aplicación permites realizar inyecciones de sql, como mínima seguridad coloca en los string el método [.Replace("'", "''");] con esto evitas el legendario [' OR '1'='1] o [algo'; drop table user;].

Pero lo que tienes que hacer es contatenar [', '] entre cada string, además colocar ['] después de [IN (], Saludos.

P.D: lo que está entre corchetes es código .net.

Etiquetas: sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:36.