可能是一个易于回答的问题。我有这样的过程:如何获得存储过程的返回值
CREATE PROCEDURE [dbo].[AccountExists]
@UserName nvarchar(16)
AS
IF EXISTS (SELECT Id FROM Account WHERE [email protected])
SELECT 1
ELSE SELECT 0
当我有一个调用这个过程,这是否ADO.NET代码:返回
return Convert.ToBoolean(sproc.ExecuteScalar());
无论是真的还是假的。
当我更改存储的过程返回1或0,而不是SELECT的:
ALTER PROCEDURE [dbo].[AccountExists]
@UserName nvarchar(16)
AS
IF EXISTS (SELECT Id FROM Account WHERE [email protected])
RETURN 1
ELSE RETURN 0
sproc.ExecuteScalar()返回null。如果我尝试使用sproc.ExecuteNonQuery(),则返回-1。
如何在ADO.NET中使用RETURN获取存储过程的结果?
我需要AccountExists反送回来SELECT的,所以我可以有另一个存储过程调用它:
--another procedure to insert or update account
DECLARE @exists bit
EXEC @exists = [dbo].[AccountExists] @UserName
IF @exists=1
--update account
ELSE
--insert acocunt
@Chris:主题应该被编辑为更具体。从主题来看,这个问题可能与T-SQL和ADO.NET有关。 – 2009-04-14 22:46:31
大声笑,这是无意的。当我输入主题时,我的注意力一定被转移了。 – core 2009-04-14 22:58:09