2011-02-03 100 views
2

我有一個存儲過程,在表中插入varchar & VARBINARY(MAX)值。 我將c#byte[]傳遞給varbinary(max)字段。我還看到byte[]大小的大小是80142,它滿足varbinary的最大限制。存儲過程執行時沒有任何錯誤。但是,當我嘗試查詢該表時,我在varbinary數據類型中看到空值。SQL Server VARBINARY(MAX)

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#代碼

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

你用來做`insert`的代碼是什麼? (存儲過程定義和`C#`調用)你是什麼意思的「空」值`null`或`0x`? – 2011-02-03 15:33:30

+0

請參閱我添加的代碼。我只是在pbytes列中看到一個空行 – Pinu 2011-02-03 15:39:21

回答

0

如何確定數據是空的?我很確定SQL Server Management Studio不會顯示太長的值(我不知道限制),即使值存在。

相關問題