varchar
& VARBINARY(MAX)
の値をテーブルに挿入するストアドプロシージャがあります。 varbinary(max)
フィールドには、C#byte[]
を渡します。また、サイズbyte[]
のサイズは80142で、最大制限値はvarbinary
です。ストアドプロシージャはエラーなしで実行されます。しかし、そのテーブルをクエリしようとすると、varbinary
データ型の空の値が表示されます。SQL Server VARBINARY(MAX)
SQL属
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]
「挿入」を行うために使用しているコードは何ですか? (ストアドプロシージャ定義と 'C#'呼び出しの両方)また、空の値が 'null'または' 0x'であることはどういう意味ですか? –
私が追加したコードをご覧ください。私はちょうどpbytes列の空白行を参照してください – Pinu
データテーブルのCREATEスクリプトを追加してください。 – Lucero