[英]need a return value from the stored procedure
我正在嘗試使用在Web服務中調用的存儲過程來更新SQL Server表。 在這里,我需要存儲過程的返回值,以便可以向用戶發送有關更新確認的true或false。
我使用C#作為連接和處理SQL Server表的語言和ADO.Net體系結構。
我也在使用SQLDataConnection
( System.Data.SqlClient
)。
您可以按以下方式創建存儲過程:
CREATE PROC ReturningProc
AS
BEGIN
IF (@SomeCondition)
SELECT 1
SELECT 0
END
您可以使用sql命令對象將其調用為:
object retval = sqlCommand.ExecuteScalar();
您將需要使用SqlDataReader對象來讀取結果。 簡而言之,像這樣:
var command = new SqlCommand(commandText, sqlConnection);
command.CommandType = CommandType.StoredProcedure;
using(var reader = command.ExecuteReader())
{
while(reader.Read())
{
var result = reader[0];
//Respond to result.
}
}
創建過程如下所示:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[Validate]
@b BIT OUT
AS
if(some condition)
SET @b = 1
else
SET @b=0
GO
像這樣在C#中檢索值
SqlParameter retval = sqlcomm.Parameters.Add("@b", SqlDbType.Bit);
retval.Direction = ParameterDirection.ReturnValue;
sqlcomm.ExecuteNonQuery();
string retunvalue = Convert.ToBoolean(sqlcomm.Parameters["@b"].Value);
並且在調用存儲過程之前已將@b的值設置為其他明智的SP將導致異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.