public int UserAuthentication(UsersViewModel users)
{
DynamicParameters parameters = new DynamicParameters();
parameters.Add("@UserName", users.UserName);
parameters.Add("@Password", users.Password);
parameters.Add("@UserID", dbType: DbType.Int32, direction: ParameterDirection.ReturnValue);
connection();
sqlConn.Open();
var result = sqlConn.Execute("usp_UserLoginValidation", parameters, commandType: CommandType.StoredProcedure);
// int userid = SqlMapper.Query<UsersViewModel>(sqlConn, "usp_UserLoginValidation", parameters, commandType: CommandType.StoredProcedure).FirstOrDefault();
int userid = parameters.Get<int>("@UserID");
sqlConn.Close();
return userid;
}
Хранимая процедура:
ALTER PROCEDURE usp_UserLoginValidation
(@UserName varchar(50),
@Password varchar(20),
@UserID int = 100 OUT)
AS
BEGIN
SET @UserID = (SELECT UserId FROM Users
WHERE UserName = @UserName AND Password = @Password AND IsActive = 1)
SELECT @UserID
END
Я пытаюсь получить UserId
из таблицы базы данных, когда пользователь входит в приложение. Выполнение хранимой процедуры в базе данных возвращает UserId
, но она не может извлечь эту информацию в класс, используя Dapper.
Я попробовал следующие подходы:
- Используя
Execute
Метод, значение пользователя равно 0. - Используя метод
Query
, ожидайте значение, но оно возвращает модель (закомментированный код)
Любая помощь будет оценена.