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!
#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.
#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:
Mostrar la cita
Ads by Google
Search Busqueda sugerida