我有一个插入varchar
&的存储过程。表中的VARBINARY(MAX)
值。
我将c#byte[]
传递给varbinary(max)
字段。我还看到byte[]
大小的大小是80142,它满足varbinary
的最大限制。存储过程执行时没有任何错误。但是当我尝试查询该表时,我在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#CODE
byte[] theData = doc.GetData();
DAL_DataTableAdapters.QueriesTableAdapter qta = new DAL_DataTableAdapters.QueriesTableAdapter();
qta.Test("test", theData);
表格结构:
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]
答案 0 :(得分:0)
如何确定数据为空?我非常确定SQL Server Management Studio不会显示太长的值(我不知道限制),即使值存在也是如此。