更新:失敗した理由であるストアドプロシージャにタイプミスがあったため、コードは期待どおりに動作しています。
エラーが発生していないため、これを修正する理由や方法がわからないようです。戻り値が0であるため、失敗を意味します。
これが私の.netコードです:
SqlParameter returnValue= new SqlParameter("returnValue", SqlDbType.Int);
returnValue.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(returnValue);
cmd.ExecuteNonQuery();
result = Convert.ToInt32(returnValue.Value); //1 success and 0 failed
私のストアドプロシージャ:
CREATE PROCEDURE EmployeeUpdate
@employee_id BIGINT,
@name nvarchar(250)
AS
BEGIN
SET NOCOUNT ON
DECLARE @Result int
SET @Result = 0
UPDATE Employee
SET name = @name
WHERE employee_id = @employee_id
IF (@@rowcount = 1)
BEGIN
SET @Result = 1
END
SET NOCOUNT OFF
RETURN @Result
END
したがって、SQL Server Management Studioからストアドプロシージャを実行するだけで、エラーなしで行が正常に更新されます。
EXEC EmployeeUpdate 34,'John John'
Return Value = 1