Select desde C#

15/07/2004 - 17:20 por Toni Font | Informe spam
Hola grupo, tengo un problemilla con el SQL SERVER!!

Cuando hago una select de un campo y este contiente ' (apostrofe) me da un
error alguien sabe como puedo solucionarlo o a que es debido?

Preguntas similare

Leer las respuestas

#1 Alejandro Perez
15/07/2004 - 17:58 | Informe spam
Hola Toni. Si explicas un poquito mejor el problema
quizas te podemos ayudar.

Los problemas con el apostrofe usualmente ocurren cuando
vas a hacer los INSERT ya que el ' corta el string de la
instruccion. Cuando utilizas dos apostrofes juntos, estos
se convierten en uno solo, resolviendo asi este problema.
('')

Pero en un select no deberias tener problema.
Muestra un poco de codigo si es posible.

Bye!
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola grupo, tengo un problemilla con el SQL SERVER!!

Cuando hago una select de un campo y este contiente '


(apostrofe) me da un
error alguien sabe como puedo solucionarlo o a que es


debido?


.

Respuesta Responder a este mensaje
#2 Eduard Tomàs
15/07/2004 - 18:57 | Informe spam
MMMmmm...

Bueno, un select puede dar también problemas si hay un
WHERE de cadena y hay apostrofe en la cadena... ya que la
cadena SQL quedaría algo así como

SELECT * from table where campo like 'D'arcy'

La solución en este casó: Usa parámetros.
Probablemente estés construyendo la cadena sql así:
string ssql = "select * from table where campo ='" +
swhere + "'";

Si la cadena swhere contiene un apostrofe, esto te dará
error.

La solución pasa por usar parámetros (objetos
SqlParameter, supongo que estás usando el DataProvider de
SQL). En este caso la sentencia SQL seria algo como:
string ssql= "select * from table where campo=@par1";
cmd.CommandText = ssql;

Los @xxxxx indica que es un parámetro cuyo valor se
establece luego: Ahora debes crear un objeto SqlParameter
y asignarle el valor correspondiente:

// Creamos el parámetro llamado @par1 (varchar de 80)
SqlParameter par = cmd.Parameters.Add ("@par1",
SqlDbType.VarChar, 80);
par.Value="D'Arcy";

Ahora ya podrás ejecutar el comando sin ningún problema
aunqué tengas apostrofes...

Un saludo,
edu

Hola Toni. Si explicas un poquito mejor el problema
quizas te podemos ayudar.

Los problemas con el apostrofe usualmente ocurren cuando
vas a hacer los INSERT ya que el ' corta el string de la
instruccion. Cuando utilizas dos apostrofes juntos,


estos
se convierten en uno solo, resolviendo asi este


problema.
('')

Pero en un select no deberias tener problema.
Muestra un poco de codigo si es posible.

Bye!
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola grupo, tengo un problemilla con el SQL SERVER!!

Cuando hago una select de un campo y este contiente '


(apostrofe) me da un
error alguien sabe como puedo solucionarlo o a que es


debido?


.



.

Respuesta Responder a este mensaje
#3 Alejandro Perez
15/07/2004 - 22:38 | Informe spam
Jajajaja tienes toda la razon Eduard lapsus mental...
El problema seguro debe estar alli en el where...

Incluso hace rato habia creado un post con un ejemplo de
los parametros, lo coloco d nuevo adaptado al caso:

SqlCommand cm = new SqlCommand("SELECT * FROM Usuarios
WHERE Nombre=@Par1",cnConexion);
cm.Parameters.Add("@Par1",SqlDbType.DateTime);
cm.Parameters["@Par1"].Value="02/05/2000";
cm.ExecuteNonQuery();

Bye!
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela




MMMmmm...

Bueno, un select puede dar también problemas si hay un
WHERE de cadena y hay apostrofe en la cadena... ya que


la
cadena SQL quedaría algo así como

SELECT * from table where campo like 'D'arcy'

La solución en este casó: Usa parámetros.
Probablemente estés construyendo la cadena sql así:
string ssql = "select * from table where campo ='" +
swhere + "'";

Si la cadena swhere contiene un apostrofe, esto te dará
error.

La solución pasa por usar parámetros (objetos
SqlParameter, supongo que estás usando el DataProvider


de
SQL). En este caso la sentencia SQL seria algo como:
string ssql= "select * from table where campo=@par1";
cmd.CommandText = ssql;

Los @xxxxx indica que es un parámetro cuyo valor se
establece luego: Ahora debes crear un objeto


SqlParameter
y asignarle el valor correspondiente:

// Creamos el parámetro llamado @par1 (varchar de 80)
SqlParameter par = cmd.Parameters.Add ("@par1",
SqlDbType.VarChar, 80);
par.Value="D'Arcy";

Ahora ya podrás ejecutar el comando sin ningún problema
aunqué tengas apostrofes...

Un saludo,
edu

Hola Toni. Si explicas un poquito mejor el problema
quizas te podemos ayudar.

Los problemas con el apostrofe usualmente ocurren




cuando
vas a hacer los INSERT ya que el ' corta el string de




la
instruccion. Cuando utilizas dos apostrofes juntos,


estos
se convierten en uno solo, resolviendo asi este


problema.
('')

Pero en un select no deberias tener problema.
Muestra un poco de codigo si es posible.

Bye!
Alejandro Perez
MCSD/MCDBA/MCT
Caracas - Venezuela


Hola grupo, tengo un problemilla con el SQL SERVER!!

Cuando hago una select de un campo y este contiente '


(apostrofe) me da un
error alguien sabe como puedo solucionarlo o a que es


debido?


.



.



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida