在 Visual Studio 中调试时存储过程中用户定义 Table 类型的值

Value of User Defined Table type in stored procedure while debugging in Visual Studio

我正在尝试通过 Visual Studio 2015 调试存储过程并希望查看 User Defined Table type 的值。

用户自定义脚本Table类型:

CREATE TYPE [dbo].[tp_CommercialActCarSends] AS TABLE(
    [ID] [int] NOT NULL,
    [ArriveDate] VARCHAR(25) NULL,
    [id_Person] [int] NULL,
    [CalcWeight] [DECIMAL](18,3) NULL   
)
GO

和存储过程的代码:

CREATE PROCEDURE [dbo].[MyStoredProcedure](
    , @CommercialActCarSends        tp_CommercialActCarSends READONLY
        , @UserID                       INT = NULL
)
AS
...

我用一些数据填充“DataTable”对象“comActsDataTable”,并通过 C# 将“comActsDataTable”传递给存储过程:

var reqRes = db.Database.SqlQuery<dynamic>("EXEC dbo.MyStoredProcedure @UserID = @UserID, 
    @CommercialActCarSends = @CommercialActCarSends"
    , InitSqlParameter("@UserID", SqlDbType.Int, usrid)
    , InitSqlParameter("@CommercialActCarSends", SqlDbType.Structured, comActsDataTable, 
    "tp_CommercialActCarSends")

我在Visual Studio中看到的只是:

在 Visual Studio 中调试时是否可以查看 tp_CommercialActCarSends 存储过程的值?

它将与您的 DataTable 的内容相同。但是如果您真的想查看内容,您可能需要创建一个 table 并在您的过程代码中插入该 table。然后当它完成该过程时,您可以检查 table 的内容。据我所知,当您有 table 值参数时,您无法在 dotnet 中查看参数值的实际内容。