可能是一個易於回答的問題。我有這樣的過程:如何獲得存儲過程的返回值
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