C# SQL Server VARBINARY(最大值)

C# SQL Server VARBINARY(最大值),c#,sql,sql-server,tsql,strongly-typed-dataset,C#,Sql,Sql Server,Tsql,Strongly Typed Dataset,我有一个存储过程,它在表中插入一个varchar&VARBINARY(MAX)值。 我将一个c#字节[]传递给varbinary(max)字段。我还看到字节[]大小的大小是80142,它满足变量binary的最大限制。存储过程执行时没有任何错误。但是当我试图查询该表时,我在varbinary数据类型中看到空值 SQL sp ALTER PROCEDURE [dbo].[Test] -- Add the parameters for the stored procedu

我有一个存储过程,它在表中插入一个
varchar
&
VARBINARY(MAX)
值。 我将一个c#
字节[]
传递给
varbinary(max)
字段。我还看到
字节[]
大小的大小是80142,它满足
变量binary
的最大限制。存储过程执行时没有任何错误。但是当我试图查询该表时,我在
varbinary
数据类型中看到空值

SQL sp

 ALTER PROCEDURE [dbo].[Test] 
            -- Add the parameters for the stored procedure here
            @PNumber varchar(50)
            ,@Byte varbinary(max)
        AS
        BEGIN
            SET NOCOUNT ON;

            -- Insert statements for procedure here
            INSERT INTO [Test].[dbo].[Data]
                   ([PNumber]
                   ,[PByte])
             VALUES
                   (@PNumber
                   ,@Byte)
        END
C#代码

表结构:

CREATE TABLE [dbo].[Data]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [PNumber] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    [PByte] [varbinary](max) NULL
) ON [PRIMARY]

如何确定数据为空?我很确定SQL Server Management Studio不会显示太长的值(我不知道限制),即使该值存在。

如何确定数据为空?我很确定SQL Server Management Studio不会显示太长的值(我不知道限制),即使该值存在。

您用于执行插入的代码是什么?(存储过程定义和
C#
调用)以及“空”值
null
0x
是什么意思?请参阅我添加的代码。我只是在pbytes列中看到一个空行,请为数据表添加创建脚本。您的第一句话说您正在插入int和varbinary,但本文的其余部分似乎是在处理varchar和varbinary。最好运行SQL Server profiler,看看SQL Server实际得到的SQL调用是什么。我有一个模糊的“回忆”(可能完全错了,如果是这样的话,请为造成的任何混淆道歉!),您可能需要传递字节数组的长度。是否存在接受长度参数的重载?用于执行插入的代码是什么?(存储过程定义和
C#
调用)以及“空”值
null
0x
是什么意思?请参阅我添加的代码。我只是在pbytes列中看到一个空行,请为数据表添加创建脚本。您的第一句话说您正在插入int和varbinary,但本文的其余部分似乎是在处理varchar和varbinary。最好运行SQL Server profiler,看看SQL Server实际得到的SQL调用是什么。我有一个模糊的“回忆”(可能完全错了,如果是这样的话,请为造成的任何混淆道歉!),您可能需要传递字节数组的长度。是否存在接受长度参数的重载?SSMS会截断返回的数据,尽管它不会显示任何数据。我现在无法访问SSMS,因此无法检查。但是,我知道,对于XML数据,如果太长,它将显示为空白。SSMS会截断返回的数据,尽管它不会显示任何数据。我现在没有访问SSMS的权限,因此无法检查。但是,我知道,对于XML数据,如果太长,它将显示为空白。
CREATE TABLE [dbo].[Data]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [PNumber] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    [PByte] [varbinary](max) NULL
) ON [PRIMARY]