Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2004, 14:37
keither
 
Fecha de Ingreso: febrero-2004
Mensajes: 67
Antigüedad: 20 años, 3 meses
Puntos: 0
inserir texto con comillas

Hola!

Sé que es una pregunta muy básica e igual alguno me manda a pastar y me dice que soy un aprovechado y lector de foros en vez de programador pero es que ya he probado varias cosas y sigo teniendo el mismo problema. Es cuando desde un campo input type text envio una cadena que contiene comillas y apóstrofes y es procesado por el formulario para inserirlo a la base de datos.

Lo primero que pensé es que existiria alguna función para codificar cadenas con formatos compatibles tipo urlencode. También que existiera alguna funcion similar al addslashes de php. Pero he acabado hacinedo uso de replace. En mi caso el código es c# y tengo lo siguiente:

sqlalta.Parameters.Add("@OBJECTE",SqlDbType.Text);
string obj=TBObjecte.Text.Replace(" ' "," ' ' ");
/*he puesto espacios para que se vea mejor que sustituyo una comilla por dos */
sqlalta.Parameters["@OBJECTE"].Value=obj;

Pues bien, este código al hacer insert en la base de datos (MS SQL Server)me da error cercano a ....
He probado poniendo un .ToString() a continuación del Replace(...)
También he probado sin el replace de escribir en el campo del formulario dos comillas en vez de una y entonces si que me hace el insert. También he leído por aqui que pueden crearse agujeros de seguridad si no se controlan la introducción de comillas por parte del usuario.

En fin, espero alguna orientación al respecto.
Gracias.

Última edición por keither; 31/03/2004 a las 14:39