我该如何声明一个参数是一个存储过程和C#都是IN和OUT?

我该如何声明一个参数是一个存储过程和C#都是IN和OUT?

问题描述:

我的代码是这样的:我该如何声明一个参数是一个存储过程和C#都是IN和OUT?

存储过程:

CREATE PROCEDURE test 
    @StatusId INT OUTPUT, 

C#代码:

var sql = @"do.test @StatusId OUT, 

SqlParameter[] parameters = new SqlParameter[] { 
    new SqlParameter("@StatusId", SqlDbType.Int) { Direction = ParameterDirection.Output }, 

我知道我可以通过添加单词OUTPUT改变这是一个输出,但怎么能我将其更改为存储过程和C#中的输入和输出?也给上面的代码,我怎么能设置状态为99或任何其他值?

+0

'@StatusId INT OUT' –

+2

所有参数始终为'IN'。即使它们被标记为“OUTPUT”,您仍然可以为它们分配一个初始值。 –

+0

谢谢,但我怎么能给参数设置一个新的SqlParameter的值?第二个参数是数据类型并设置了一个方向。我在哪里或如何分配一个值? – Alan2

new SqlParameter("@StatusId", SqlDbType.Int) { Direction = ParameterDirection.Output, Value = 99 }