在 Ado.net 中,代码调用带有输入和输出参数的存储过程。
我知道如果某些输入参数是可选的(在 SP 中有默认值),除非需要,否则代码不需要定义和发送参数值。
我的问题是:这同样适用于可选的输出参数吗?代码可以忽略可选的(具有默认值)SP 输出参数吗?
我本可以自己测试它,但我现在没有一个可行的例子,而且我的时间很短。
谢谢。
在 Ado.net 中,代码调用带有输入和输出参数的存储过程。
我知道如果某些输入参数是可选的(在 SP 中有默认值),除非需要,否则代码不需要定义和发送参数值。
我的问题是:这同样适用于可选的输出参数吗?代码可以忽略可选的(具有默认值)SP 输出参数吗?
我本可以自己测试它,但我现在没有一个可行的例子,而且我的时间很短。
谢谢。
是的。如果参数具有默认值,则可以安全地省略它,与参数方向(INPUT 或 OUTPUT)无关。从 ADO.Net 调用该过程这一事实完全无关紧要。例如:
create procedure usp_test
@a int = 1 output,
@b int = 2
as
begin
set @a = @b;
end
go
exec usp_test
从业务规则的角度来看是否安全(即忽略 OUTPUT 参数返回值),完全取决于过程和您的应用程序的具体情况。
编辑:原来我在这里错了,但我会留下我的答案,因为信息SqlParameter
可能有用。对不起,虽然不准确。
我不相信。您必须发送一个OUTPUT
参数,在 ADO.NET 中,这是通过添加一个SqlParameter
将其ParameterDirection
属性设置为ParameterDirection.Output
.
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.direction.aspx
http://msdn.microsoft.com/en-us/library/system.data.parameterdirection.aspx