Visual Basic.NET - Reemplazar apóstrofe en cuador de texto

 
Vista:

Reemplazar apóstrofe en cuador de texto

Publicado por Ohgar (8 intervenciones) el 19/05/2011 05:43:37
Como hacer para que mi aplicación no acepte la tecla apóstrofe(') o me la reemplaze por tilde (´) al capturar datos en un cuadro de texto,ya que dicho apóstrofe produce error al hacer consultas SQL y es muy dispendioso validar todos los cuadors de texto de mi aplicación
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reemplazar apóstrofe en cuador de texto

Publicado por Miguel (26 intervenciones) el 20/05/2011 12:12:38
No se como hacer lo que dices, pero si se evitar los errores con el apóstrofe.

Var=Me.TextBox.text.Replace("'", "''")

Y utilizas Var en tus selects, inserts, updates, ...

Me.TextBox.text puede ser cualquier variable de texto.

Lo que hace es sustituir ' por '' en tu cadena y funciona perfectamente.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reemplazar apóstrofe en cuador de texto

Publicado por Ohgar (8 intervenciones) el 20/05/2011 17:41:03
Si, eso lo he hecho pero imaginate todos los TextBox que puede tener una aplicación, lo he hecho por cada formulario en keydown evento del formulario y se puede tambien, pero que mamera un caracter restringido tener que como usuario ponerse a validarlo
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reemplazar apóstrofe en cuador de texto

Publicado por Miguel (26 intervenciones) el 23/05/2011 16:10:18
Pero es que no tienes que hacerlo para cada Textbox de la aplicación, sólo antes de cada sentencia sql, que no serán tantas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

Reemplazar apóstrofe en cuador de texto

Publicado por roger (186 intervenciones) el 20/05/2011 18:17:36
la raiz de tu problema es enviar cadenas sql concatenadas para ejecutarlas en BD, esto es lo que crea el riesgo de inyeccion de codigo sql en lo que estas haciendo. Te aconsejo que empieces a usar consultar parametrizadas y preferiblemente procedimientos almacenados, como se ve acá http://msdn.microsoft.com/en-us/magazine/ee236412.aspx

Por otro lado, si tienes un componente generico que ejecute las sentencias sql (una clase de conexion o algo asi), podrias centralizar el reemplazo del caracter en ese punto, antes de ejecutar la sentencia, pero el ideal es lo que te dije primero, las consultas parametrizadas.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar