【发布时间】:2020-03-06 08:09:26
【问题描述】:
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方法,userid值为0。 - 使用
Query方法,期望值但返回模型(注释代码)
任何帮助将不胜感激。
【问题讨论】:
标签: c# sql-server asp.net-mvc dapper