我有一个存储过程,它在表中插入一个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)
ENDC#代码
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]发布于 2011-02-04 22:09:08
如何确定数据为空?我非常确定SQL Server Management Studio不会显示过长的值(我不知道限制),即使该值存在也是如此。
https://stackoverflow.com/questions/4888100
复制相似问题