RowFilter Error

19/05/2005 - 19:24 por pacojl | Informe spam
Hola a todos

Tengo un problema. Intento hacer un filtro en un DataView con un
string que contiene el caracter ' y me da error.
Algo así:

string A = "O'Connell";
RowFilter = "Nombre ='" + A + "'";

Alguien puede decirme si hay alguna forma que interprete el caracter '
dentro del filtro?

Gracias a todos por anticipado.

Preguntas similare

Leer las respuestas

#1 Braulio Diez
20/05/2005 - 08:41 | Informe spam
Hola que hay,

Los caracteres ' y % son caracteres especiales para SQL (y muy peligrosos
ya que por aquí es por donde entran los ataques por inyección), para evitar
el error que obtienes, has un replace de todo los caracteres simple comilla '
por doble comilla '' (con esto le estás diciendo a SQL que eso no es un
caracter de cierre de cadena, si no unas comillas simples que van con la
cadena de texto).

Un saludo
Braulio

"" escribió:

Mostrar la cita
#2 pacojl
20/05/2005 - 15:39 | Informe spam
Gracias por la ayuda Braulio

Con SQL no tengo ningún problema. El problema en con un RowFilter en
un DataView. De todas formas he probado lo que me dices y tampoco me
va bien.

Gracias.

Braulio Diez wrote in message news:...
Mostrar la cita
#3 Braulio Diez
20/05/2005 - 20:25 | Informe spam
Hola Paco,

Es raro porque ese problema se arregla así con un DataView, no se si igual
no me he explicado bien, te pongo un ejemplo con tu función:

string A = "O'Connell";
A = importName.Replace("'", "''");
RowFilter = "Nombre ='" + A + "'";

Je je, el replace aparece un poco feo, es replace ' por '' (dos caracteres
con comilla simple, no es el caracter de comilla doble), copialo y pegalo
directamente en tu código (follón de comillas :-) ).

Un saludo
Braulio



"Paco" wrote:

Mostrar la cita
#4 Paco
21/05/2005 - 10:29 | Informe spam
Muchas gracias por la ayuda, me ha ido perfecto.

No había entendido bien las dos comillas simples.

"Braulio Diez" escribió:

Mostrar la cita
#5 Carlos Durán Urenda
23/05/2005 - 19:20 | Informe spam
Hola

Por si te sirve ademas de las explicaciones ya brindadas, yo acostumbro
crear este tipo de expresiones utilizando el codigo ascii de los caracteres,
por ejemplo


RowFilter = Chr(34) & A & Chr(34)

Saludos
Carlos Durán
"" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida