带返回值的存储过程
有一个SQL server2000的数据库
表Students中有2个字段 StudentID StudentSex
定义一个CheckID的存储过程
代码如下:
CREATE PROCEDURE CheckID
@StudentID char(9)
AS
BEGIN
IF ((SELECT COUNT(*)
FROM Students
WHERE StudentID = @StudentID ) > 1)
return 1
ELSE
return 0
END
GO
如何在C#中定义一个string temp 让它等于这个存储过程的return的值
希望高手帮我解决下 谢谢了
------解决方案--------------------用输出参数吧,像函数一样return我还没做过不知道可以不
------解决方案--------------------将参数的Direction属性设置为ParameterDirection.ReturnValue即可
------解决方案--------------------建立使用out参数传递
参考
SqlParameter p1 = new SqlParameter( "@StudentID ", SqlDbType.Char,9 );
p1.Value=具体的值;
cmd.Parameters.Add(p1);
SqlParameter p2 = new SqlParameter( "@returnVal ", SqlDbType.Int);
cmd.Parameters.Add(p2);
cmd.ExecuteNonQuery();
conn.Close();
Response.Write(p2.Value);
样就可以访问你out参数的值了
存储过程修改为
CREATE PROCEDURE CheckID
@StudentID char(9),@returnVal int
AS
BEGIN
IF ((SELECT COUNT(*)
FROM Students
WHERE StudentID = @StudentID ) > 1)
set @returnVal=1
ELSE
set @returnVal= 0
END
GO
cmd.ExecuteNonQuery();
conn.Close();
Response.Write(p2.Value);