0 votos

'usp_Login_ValidarLogin' esperaba el parámetro '@Contraseña', que no se ha especificado.

Buemos Dias: Estoy prendiendo en lo que respecta a programación Estoy realizando un Login Basico con Visual Studio 2017 y sql server todo esta bien pero al momento de logear con usuario y contraseña me sale el mensaje:

"El procedimiento o la función 'usp_Login_ValidarLogin' esperaba el parámetro '@Contraseña', que no se ha especificado"

Codigos de Login.aspx.cs: using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;

namespace Admin { public partial class Login : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) {

    }

    protected void btnLogin_Click(object sender, EventArgs e)
    {
        try
        {
            DataSet ds = Login.ValidarLogin(txtUserID.Text, txtPassword.Text);
            DataTable dt = ds.Tables[0];
            if (dt.Rows.Count == 0)
            {
                messageBox.ShowMessage("El usuario y/o la contaseña son incorrecto");
            }
            else
            {
                this.Session["UserId"] = dt.Rows[0]["Id"].ToString();
                this.Session["UserName"] = dt.Rows[0]["Username"].ToString();

                messageBox.ShowMessage("Login validado correctamente!");
            }

        }
        catch (Exception ex)
        {
            messageBox.ShowMessage(ex.Message);
        }
    }
}

}

codigo de login.cs

using Admin.Classes; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web;

namespace Admin { public partial class Login { public static DataSet ValidarLogin(string sUserName, string sPassword) { SqlParameter[] dbParams = new SqlParameter[] { DBHelper.MakeParam("@Usuario", SqlDbType.VarChar, 0, sUserName), DBHelper.MakeParam("@Contrasena", SqlDbType.VarChar, 0, sPassword) }; return DBHelper.ExecuteDataSet("usp_Login_ValidarLogin", dbParams); } } }

sqlserver: tabla usuario

GO CREATE TABLE [dbo].[tblUser]( [Id] [int] IDENTITY(1,1) NOT NULL, [UserName] varchar NULL, [PerfilId] [int] NULL, CONSTRAINT [PK_tblUser] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO

procedimiento almacenado:

create procedure [dbo].[usp_Login_ValidarLogin] @Usuario Varchar(500), @Contraseña Varchar(150)

as Select Id,UserName from tblUser with(nolock) where userName = @Usuario and password = @Contraseña GO USE [master] GO ALTER DATABASE [Admin] SET READ_WRITE GO

Nota: el código no es propio De ante mano les doy gracias por la ayuda que puedan darme .

0voto

Daniel Florez Puntos 10

Hola buen día, revisa bien la definición de los nombres de parametro @contraseña, ya que en algunos lugares veo que esta @Contraseña y @Contrasena, tambien verifica que si estas recibiendo ambos parametros en el controlador antes de enviarlos a la base de datos y realizar la consulta. Espero ya lo hayas solucionado, de lo contrario puedes intentar lo que te nombre o te puedo ayudar.

Saludos!

0voto

Alejandro Anaya Puntos 50

Buen día. Por lo que logro revisar en tu código de SQL, donde creas la tabla, no tienes definido ningún campo que se llame "password" por lo que es imposible que puedas llevar a cabo dicho stored procedure.

Saludos

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: