【发布时间】:2014-07-01 22:18:47
【问题描述】:
我正在实体框架6.0上写代码,asp.net上的linq,sql server平台。
我写了一个存储过程,它应该返回一个输出值(0 或 1)
首先我用输出参数写SP如下:
ALTER proc [dbo].[checkUser]
(
@oNo int,
@pw varchar(50),
@val int output
)
as
begin
if EXISTS (select * from Users where @oNo=sNo and @pw=password)
begin
set @val=1
end
if not exists(select * from Users where @oNo=sNo and @pw=password)
begin
set @val=0
end
end
没用。它返回-1。然后我像这样改变了SP:
ALTER proc [dbo].[checkUser]
(
@oNo int,
@pw varchar(50)
)
as
begin
if EXISTS (select * from Users where @oNo=sNo and @pw=password)
begin
return 1
end
else
begin
return 0
end
end
存储过程的每一种方式都只返回-1
你能帮我吗,我哪里做错了?
【问题讨论】:
-
ObjectParameter output = new ObjectParameter("val", typeof(int)); var d = context.checkUser(Convert.ToInt32(txtONo.Text), txtPw.Text, 输出); var d=context.checkUser(Convert.ToInt32(txtONo.Text),txtPw.Text); if (d==1) { // } else if(d==0) { // }
-
你在使用函数导入吗?
-
好吧,我将数据库映射到实体框架。所以我在sql端写的存储过程,在函数导入中与sql端同名存在;称为“检查用户”。
-
抱歉代码是这样的: ObjectParameter output = new ObjectParameter("val", typeof(int)); var d = context.checkUser(Convert.ToInt32(txtONo.Text), txtPw.Text, 输出); if (d==1) { // } else if(d==0) { // }
标签: sql-server linq stored-procedures parameters output