Problema con Sentencia SQL

16/08/2006 - 16:57 por Igle | Informe spam
Hola, estoy intentando realizar un método que obtenga a partir de un
proveedor que se pasa como parametro los datos de usuario y password de
una base de datos.

El método que he creado es el siguiente:

public System.Collections.Specialized.NameValueCollection
ObtenerDatosUsuario(SqlCeConnection ssceconn, String proveedor)
{
string nombreUser = "";
string password = "";
System.Collections.Specialized.NameValueCollection
datosCuenta = new
System.Collections.Specialized.NameValueCollection();
SqlCeCommand datosCuentas = ssceconn.CreateCommand();
datosCuentas.CommandText = "SELECT NombreDeUsuario,
Password FROM Cuentas WHERE Proveedor = '" +proveedor+ "'";
ssceconn.Open();
SqlCeDataReader rdr = datosCuentas.ExecuteReader();

try
{
while(rdr.Read())
{
nombreUser = rdr.GetString(0);
password = rdr.GetString(1);
datosCuenta.Add(nombreUser,password);
}
}
finally
{
rdr.Close();
}
return datosCuenta;
}

Los datos que obtengo los meto en una coleccion de nombres para luego
trabajar con ellos, el caso esq al ir ejecutando me da un error en:

SqlCeDataReader rdr = datosCuentas.ExecuteReader();

Que me dice algo asi como que no puedo utilizar el WHERE en esa
sentencia, literalemente:
" The ntext and image data types cannot be used in WHERE, HAVING, GROUP
BY, ON, or IN clauses, except when these data types are used with the
LIKE or IS NULL predicates."

Que estoy haciendo mal??

Muchas gracias por leerme.

Preguntas similare

Leer las respuestas

#1 Igle
16/08/2006 - 17:21 | Informe spam
Solucionado por mi mismo...

Por si le sirve a alguien de ayuda:

La sentencias que tratan atributos tipo ntext no permiten el simbolo en los Where, se debe utilizar LIKE.

Por ejemplo:

Select a from tabla where dato='dato2' quedaria Select a from tabla
where dato LIKE 'dato2'

Espero que sirva de ayuda!
Respuesta Responder a este mensaje
#2 Octavio Hernandez
17/08/2006 - 01:02 | Informe spam
Igle,

Cuídate de validar el valor del parámetro 'proveedor' del método. Tal como
has escrito la sentencia SQL, es susceptible de 'inyección SQL'.

Slds - Octavio


"Igle" escribió en el mensaje
news:
Hola, estoy intentando realizar un método que obtenga a partir de un
proveedor que se pasa como parametro los datos de usuario y password de
una base de datos.

El método que he creado es el siguiente:

public System.Collections.Specialized.NameValueCollection
ObtenerDatosUsuario(SqlCeConnection ssceconn, String proveedor)
{
string nombreUser = "";
string password = "";
System.Collections.Specialized.NameValueCollection
datosCuenta = new
System.Collections.Specialized.NameValueCollection();
SqlCeCommand datosCuentas = ssceconn.CreateCommand();
datosCuentas.CommandText = "SELECT NombreDeUsuario,
Password FROM Cuentas WHERE Proveedor = '" +proveedor+ "'";
ssceconn.Open();
SqlCeDataReader rdr = datosCuentas.ExecuteReader();

try
{
while(rdr.Read())
{
nombreUser = rdr.GetString(0);
password = rdr.GetString(1);
datosCuenta.Add(nombreUser,password);
}
}
finally
{
rdr.Close();
}
return datosCuenta;
}

Los datos que obtengo los meto en una coleccion de nombres para luego
trabajar con ellos, el caso esq al ir ejecutando me da un error en:

SqlCeDataReader rdr = datosCuentas.ExecuteReader();

Que me dice algo asi como que no puedo utilizar el WHERE en esa
sentencia, literalemente:
" The ntext and image data types cannot be used in WHERE, HAVING, GROUP
BY, ON, or IN clauses, except when these data types are used with the
LIKE or IS NULL predicates."

Que estoy haciendo mal??

Muchas gracias por leerme.
Respuesta Responder a este mensaje
#3 Igle
17/08/2006 - 02:34 | Informe spam
Gracias Octavio, pero la aplicacion no va mas allá de un mero
proyecto..no va a ser publica ni nada...aunq si tengo tiempo corregiré
bugs de este tipo, por si alguien toma mi proyecto de la universidad en
algun momento.
Gracias!
Octavio Hernandez wrote:
Igle,

Cuídate de validar el valor del parámetro 'proveedor' del método. Tal como
has escrito la sentencia SQL, es susceptible de 'inyección SQL'.

Slds - Octavio


"Igle" escribió en el mensaje
news:
Hola, estoy intentando realizar un método que obtenga a partir de un
proveedor que se pasa como parametro los datos de usuario y password de
una base de datos.

El método que he creado es el siguiente:

public System.Collections.Specialized.NameValueCollection
ObtenerDatosUsuario(SqlCeConnection ssceconn, String proveedor)
{
string nombreUser = "";
string password = "";
System.Collections.Specialized.NameValueCollection
datosCuenta = new
System.Collections.Specialized.NameValueCollection();
SqlCeCommand datosCuentas = ssceconn.CreateCommand();
datosCuentas.CommandText = "SELECT NombreDeUsuario,
Password FROM Cuentas WHERE Proveedor = '" +proveedor+ "'";
ssceconn.Open();
SqlCeDataReader rdr = datosCuentas.ExecuteReader();

try
{
while(rdr.Read())
{
nombreUser = rdr.GetString(0);
password = rdr.GetString(1);
datosCuenta.Add(nombreUser,password);
}
}
finally
{
rdr.Close();
}
return datosCuenta;
}

Los datos que obtengo los meto en una coleccion de nombres para luego
trabajar con ellos, el caso esq al ir ejecutando me da un error en:

SqlCeDataReader rdr = datosCuentas.ExecuteReader();

Que me dice algo asi como que no puedo utilizar el WHERE en esa
sentencia, literalemente:
" The ntext and image data types cannot be used in WHERE, HAVING, GROUP
BY, ON, or IN clauses, except when these data types are used with the
LIKE or IS NULL predicates."

Que estoy haciendo mal??

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