Foros del Web » Programación para mayores de 30 ;) » .NET »

Error función para comprobar usuario y password con sql server y c#

Estas en el tema de Error función para comprobar usuario y password con sql server y c# en el foro de .NET en Foros del Web. holaa... el problema que tengo es con la funcion de verificar usuario que les paso a continuacion, esta recibe como parametros un nombre y password ...
  #1 (permalink)  
Antiguo 29/01/2008, 16:53
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Error función para comprobar usuario y password con sql server y c#

holaa... el problema que tengo es con la funcion de verificar usuario que les paso a continuacion, esta recibe como parametros un nombre y password y los verifica si existe en la tabla USUARIO que se encuentra en una base de datos realizada en sql server 2005

esta es la funcion:

public bool verificarUsuario(string nombre, string pass)
{
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "Server=.\\SQLEXPRESS; database='C:\\Archivos de programa\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\MesaAyuda.mdf';Integ rated Security=True;User Instance=True";
cnn.Open();

System.Text.StringBuilder sel = new System.Text.StringBuilder();

sel.Append("SELECT COUNT(*) FROM USUARIO");
sel.Append("WHERE NombreUsuario = @Nombre AND Password = @Clave");

SqlCommand cmd = new SqlCommand(sel.ToString(), cnn);

cmd.Parameters.Add("@Nombre",SqlDbType.NVarChar,5) ;
cmd.Parameters.Add("@Clave", SqlDbType.NVarChar,10);

cmd.Parameters["@Nombre"].Value = nombre;
cmd.Parameters["@Clave"].Value = pass;

int t = Convert.ToInt32(cmd.ExecuteScalar());

cnn.Close();

if (t == 0)
return false;
else
return true;
}

devuelve true o false depende de si encontro algun registro que coincida con los datos ingresados...pero al ejecutarla me lanza el siguiente error:

Sintaxis incorrecta cerca de '='.

y marca con amarillo la linea:

int t = Convert.ToInt32(cmd.ExecuteScalar());


la verdad ya he leido varios post que hay en este foro y la mayoria lo hacen de esta forma pero no encontre ninguno que tuviera este problema.
si por favor me pueden ayudar les agradeceria mucho.

gracias

Ariel
  #2 (permalink)  
Antiguo 30/01/2008, 09:25
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Error función para comprobar usuario y password con sql server y c#

cmd.ExecuteScalar


regresa un entero y convert.toint32 esperaria cualquier tipo excepto un int.

revisa solo igualando t= a cmd.executescalarar

peterpay
  #3 (permalink)  
Antiguo 30/01/2008, 10:12
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Error función para comprobar usuario y password con sql server y c#

para empezar en tu query el texto lo tienes junto

sel.Append("SELECT COUNT(*) FROM USUARIO");
sel.Append("WHERE NombreUsuario = @Nombre AND Password = @Clave");

y esto arroja:
Cita:
SELECT COUNT(*) FROM USUARIOWHERE NombreUsuario = @Nombre AND Password = @Clave
te falta dar un espacio entre USUARIO Y WHERE, te debería quedar algo así:

Cita:
sel.Append("SELECT COUNT(*) FROM USUARIO "); //hay un espacio al final
sel.Append("WHERE NombreUsuario = @Nombre AND Password = @Clave");
...
... // te ahorras la comparación del "if"
return (t==0);
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 30/01/2008, 12:22
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Error función para comprobar usuario y password con sql server y c#

gracias RootK por tu aporte, la verdad tenias razon en eso del espacio...pero ahora que lo corregi mi lanza el siguiente error sobre la misma sentencia


int t = Convert.ToInt16(cmd.ExecuteScalar()); //sobre esta sale el error

error : Los tipos de datos text y varchar son incompatibles con el operador equal to.

busque por todos lados pero no se que pueda ser...si alguien sabe GRACIAS!!!
  #5 (permalink)  
Antiguo 30/01/2008, 12:24
 
Fecha de Ingreso: enero-2008
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Error función para comprobar usuario y password con sql server y c#

Perdon sobre esta cadena sale el error

int t = Convert.ToInt32(cmd.ExecuteScalar()); //sobre esta sale el error

es toint32 no 16.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:46.