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ó:

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.

Respuesta Responder a este mensaje
#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:...
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

Respuesta Responder a este mensaje
#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:

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:...
> 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
>

Respuesta Responder a este mensaje
#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ó:

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:

> 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:...
> > 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
> >
>
Respuesta Responder a este mensaje
#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:
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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida