Stored procedures 我无法获取Azure Sql上存储过程的InputOutput方向

Stored procedures 我无法获取Azure Sql上存储过程的InputOutput方向,stored-procedures,azure-sql-database,Stored Procedures,Azure Sql Database,我在Azure SQL中创建了以下存储过程 ALTER PROCEDURE [dbo].[Composite_Shop_GetNextOrdreNo] @OrderPrefix NVARCHAR(50) OUTPUT, @IsTestMode int = 0 AS DECLARE @NextOrderNumber int IF NOT EXISTS (SELECT TOP 1 [OrderPrefix] FROM [dbo

我在Azure SQL中创建了以下存储过程

ALTER PROCEDURE [dbo].[Composite_Shop_GetNextOrdreNo]
    @OrderPrefix NVARCHAR(50) OUTPUT,
    @IsTestMode int = 0
AS
    DECLARE @NextOrderNumber int

    IF NOT EXISTS (SELECT TOP 1 [OrderPrefix] 
                   FROM [dbo].[Composite_Shop_OrderNumber] 
                   WHERE [OrderPrefix] = @OrderPrefix)
    BEGIN
        INSERT INTO [dbo].[Composite_Shop_OrderNumber] (OrderPrefix) 
        VALUES (@OrderPrefix)
    END

    UPDATE [dbo].[Composite_Shop_OrderNumber] WITH (READCOMMITTEDLOCK)
    SET @NextOrderNumber = Number = Number + 1
    WHERE [OrderPrefix] = @OrderPrefix

    SELECT @OrderPrefix = @OrderPrefix +  REPLICATE('0', 6 - LEN(RTRIM(CONVERT(nvarchar(50), @NextOrderNumber)))) + CONVERT(nvarchar(50), @NextOrderNumber)

    RETURN
无论我从C#尝试什么,我都没有成功地给它一个参数,并再次将其导出

凭直觉,我认为这应该行得通,但事实并非如此

var param = new SqlParameter("@OrderPrefix",SqlDbType.NVarChar);
param.value = "test";
param.Direction = ParameterDirection.InputOutput;
cmd.Parameters.Add(param);
当我在参数执行后检查它时,它与发送它时一样


我想我一定错过了什么。

包装在一个SqlCommand集合中作为存储过程,commandtext集合为存储过程名称。您是否尝试过使用
参数方向。输出
?另外:我总是为我的
NVarChar
参数指定一个长度:
var param=new-SqlParameter(“@OrderPrefix”,SqlDbType.NVarChar,50);参数方向=参数方向输出如果我使用.Output,它将无法工作,因为它还需要输入第一个参数。并且在nvarchar上尝试了长度。