【发布时间】:2022-01-06 20:28:25
【问题描述】:
我正在创建一个 ASP.NET Core 5 Web API。我试图从 SQL Server 存储过程中获取返回值。
这是我的代码:
public async Task<bool> Login(EmployeeDO _loginDO)
{
var parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@RetnParam", ParameterDirection.ReturnValue));
parameters.Add(new SqlParameter("@LoginId", _loginDO.empno));
parameters.Add(new SqlParameter("@LoginPwd", _loginDO.password));
string StoredProc = "exec PR_ABCXYZ " +
"@LoginId = " + _loginDO.empno + "," +
"@LoginPwd = '" + _loginDO.password + "'";
var result = await DbContext.Database.ExecuteSqlRawAsync(StoredProc);
bool ret = Convert.ToBoolean(result);
return ret;
}
结果总是返回-1。
【问题讨论】:
-
exec PR_ABCXYZ应该是exec @RetnParam = PR_ABCXYZ -
嗨 Dale,它会抛出错误“必须声明标量变量“@RetnParam”。”
-
可能是因为您没有将参数列表传递给 ExecuteSqlRawAsync?
-
您似乎在数据库中以明文形式存储密码您不能这样做!
-
加载...这个问题经常被问到...一个快速的谷歌应该找到你很多例子。
标签: sql-server .net-core