【问题标题】:.NET CLR Stored procedure OUTPUT Parameter.NET CLR 存储过程输出参数
【发布时间】:2011-11-24 11:56:29
【问题描述】:

我正在 VB.NET(.NET 3.5,SQLServer 2005)中创建一个 CLR 存储过程。该过程有 4 个 BYVal 参数和 4 个 BYRef 参数。它编译并正确部署到 SQL Server 中,并创建了一个存储过程。 但是,当我尝试运行 SP 时,它坚持传递 OUTPUT 参数。它给出了以下错误

我正在从 SQL Server 运行它,如下所示

声明@return_value int, @outI 整数, @outS nvarchar(4000), @outD 日期时间, @outB 位

EXEC    @return_value = [dbo].[ProofOfConcept]
        @inI = 23,
        @inS = N'john',
        @inD = N'12/12/2009',
        @inB = 1,
        @outI = @outI OUTPUT,
        @outS = @outS OUTPUT,
        @outD = @outD OUTPUT,
        @outB = @outB OUTPUT

'TestProc' 失败,因为参数 5 不允许为空。

我的 VB.NET 过程声明如下

 Public Shared Sub TestProc(ByVal inI As Integer, ByVal inS As String, ByVal inD As DateTime, ByVal inB As Boolean, _
                                     ByRef outI As Integer, ByRef outS As String, ByRef outD As DateTime, ByRef outB As Boolean)

【问题讨论】:

  • 我想你忘记了错误信息中的粘贴。
  • 除了@siride 注释之外,您如何调用存储过程也会有所帮助。

标签: .net


【解决方案1】:

ByRef 之前使用Out() 属性,如下面的代码所示

Imports System.Runtime.InteropServices
…
Public Shared Sub PriceSum ( <Out()> ByRef value As SqlInt32)

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多