我有这个 SQL Server 存储过程:
@UserName VARCHAR(MAX),
@Result INT
AS
BEGIN
SET NOCOUNT ON;
SELECT LoginID
FROM Personnel
WHERE LoginID = @UserName AND Administrator = 'Y'
SET @Result = @@ROWCOUNT
RETURN @Result
END
当我测试它时,我得到了预期的结果,我得到 1 行或 0 行计数。
我使用以下代码从 C# 应用程序调用存储过程:
private void ValidateUser(string user)
{
using (ComplaintsEntities db = new ComplaintsEntities())
{
var t = db.AAGetAdminStatus(user,0);
}
}
当我使用良好的用户帐户进行测试时,我应该得到 1
结果,如果我的用户不是管理员,我应该得到 0
结果。当我检查 C# 代码中的返回值时,它总是返回 -1
。我怎样才能让它发挥作用?
最佳答案
@UserName varchar(max)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
Select count(LoginID) UserCount
from Personnel
where LoginID = @UserName And Administrator = 'Y'
END
实体代码:
private void ValidateUser(string user)
{
using (ComplaintsEntities db = new ComplaintsEntities())
{
var t = db.AAGetAdminStatus(user).First().UserCount;
}
}
关于c# - Entity Framework 从存储过程返回错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822734/