Hot*_*oil 2 c# ado.net stored-procedures sql-server-2005
我有一个存储过程执行某些操作并返回1或0,如下所示
CREATE PROCEDURE dbo.UserCheckUsername11
(
@Username nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;
IF Exists(SELECT UserID FROM User WHERE username =@Username)
return 1
ELSE
return 0
END
Run Code Online (Sandbox Code Playgroud)
在C#我想这个返回值,我尝试ExcuteScalar
,但它并没有返回任何值(我知道如果我更换return 0
与Select 0
ExcuteScalar
将catach ..但它是任何方式,让我获得与替换返回的值return
用select
?
注意:我也不想用户存储过程输出参数
实质上,您必须使用"方向"返回值定义参数.
您可以在此处找到一些示例:将ADO.NET与SQL Server一起使用,此处:从SQL存储过程中获取返回值.
以下是引用的第一个链接的相关部分:
要获取RETURN语句的值,您需要执行以下操作:
// add a new parameter, with any name we want - its for our own
// use only
SqlParameter sqlParam = com.Parameters.Add("@ReturnValue", SqlDbType.Int);
// set the direction flag so that it will be filled with the return value
myParm.Direction = ParameterDirection.ReturnValue;
Run Code Online (Sandbox Code Playgroud)
然后,在执行存储过程之后,
int returnValue = (int)com.Parameters["@ReturnValue"].Value
Run Code Online (Sandbox Code Playgroud)
将检索已设置的值.