存储过程中的返回值问题
存储过程中的RETURN值在代码中如何接收?
exists的值怎么来的?
ALTER PROCEDURE HR_Personnel_Login
(
@UserID varchar(50),
@Password varchar(50)
)
AS
if exists
(
SELECT USRID
FROM HR_PersonnelInfo
WHERE USRID = @UserID
AND UsrPassword = @Password
)
RETURN 0
if exists
(
SELECT USRID
FROM HR_PersonnelInfo
WHERE USRID = @UserID
)
RETURN 1
RETURN 2
------解决方案--------------------parameter.Direction = ParameterDirection.ReturnValue;
exists得意思是如果
SELECT USRID
FROM HR_PersonnelInfo
WHERE USRID = @UserID
AND UsrPassword = @Password
有记录则返回 true
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
最新版本:20070212
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案-------------------- SqlConnection conn = new SqlConnection( "server=.;pwd=sa;uid=sa;database=northwind ");
SqlCommand cmd = new SqlCommand( "ww ",conn);
cmd.CommandType = CommandType.StoredProcedure;
int a = 0 ;
SqlParameter wwww = new SqlParameter();
wwww.Direction = ParameterDirection.InputOutput;
wwww.Value = a;
wwww.ParameterName = "@oo ";
cmd.Parameters.Add( wwww );
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
this.Label1.Text = wwww.Value.ToString();
存储过程
create proc ww
@oo int output
set @oo = 5
存储过程的参数要是output,外面接受的时候,要设置SQL的参数方向即:
ParameterDirection.InputOutput;
然后赋一个和存储过程里参数一样类型是值,然后通过存储过程就可以直接用代码里的参数的value来获得SQL里的值了
------解决方案--------------------cmd.Parameters.Add( "@ReturnValue ", SqlDbType.Int);
cmd.Parameters[ "@ReturnValue "].Direction = ParameterDirection.ReturnValue;
执行完存储过程后就可以的到cmd.Parameters[ "@ReturnValue "].Value了
------解决方案--------------------exists的值怎么来的?
======>
exists(语句)
是该语句有查询到记录