Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   .NET (https://www.clubdelphi.com/foros/forumdisplay.php?f=17)
-   -   error funcion login usuario en c# con SQL server (https://www.clubdelphi.com/foros/showthread.php?t=52756)

Ariel03 30-01-2008 12:32:15

error funcion login usuario en c# con SQL server
 
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 verificarUsuar io(string nombre, string pass)
{
SqlConnection cnn = new SqlConnection();
cnn.Connection String = "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.St ringBuilder sel = new System.Text.St ringBuilder();

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.NVar Char,10);

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

int t = Convert.ToInt3 2(cmd.ExecuteSca lar());

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...p ero al ejecutarla me lanza el siguiente error:

Sintaxis incorrecta cerca de '='.

y marca con amarillo la linea:

int t = Convert.ToInt3 2(cmd.ExecuteSca lar());


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

nightynvid 01-02-2008 16:50:02

bueno ariel creo que el error esta en la forma en como estas mandando el texto de la consulta sql

en la forma como lo estas concatenando queda asi

Código SQL [-]
"SELECT COUNT(*) FROM USUARIOWHERE NombreUsuario = @Nombre AND Password = @Clave"



entonces te sugiero pongas un espacio para separar el texto de la consulta entre usuario y where y que quede asi ademas de que no esta de mas darle un alias al resultado d ela consulta

Código SQL [-]
"SELECT COUNT(*) total FROM USUARIO WHERE NombreUsuario = @Nombre AND Password = @Clave"



y una recomendacion coloca entre etiquetas tu codigo para que pueda ser mas legible hasta pronto

mamaro 20-02-2008 23:27:30

Hola
 
No estoy seguro pero creo que el APPEND hace que cada texto quede en una linea separada.
A mi la otra vez me dieron problemas los parámetros (@algo), veo que en tu código se podría hacer algo así:

public bool verificarUsuar io(string nombre, string pass)
{
SqlConnection cnn = new SqlConnection();
cnn.Connection String = "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.St ringBuilder sel = new System.Text.StringBuilder();
sel.Append("SELECT COUNT(*) FROM USUARIO");
sel.Append("WHERE NombreUsuario = " + nombre + " AND Password = " + pass);
SqlCommand cmd = new SqlCommand(sel.ToString(), cnn);
int t = Convert.ToInt32(cmd.ExecuteScalar());
cnn.Close();
if (t == 0)
return false;
else
return true;
}

Saludos y suerte. :)


La franja horaria es GMT +2. Ahora son las 08:23:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi