Вставить байтовый массив в varbinary (max) запись - PullRequest
4 голосов
/ 06 февраля 2010

Я хочу вставить INTO таблицу в запись varbinary (max) байтового массива. Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 07 февраля 2010

Используя хранимую процедуру, просто создайте параметр типа varbinary (max) и вставьте его в таблицу, как если бы вы использовали любой тип данных.

В вашем коде на c # (или vb или любом другом) добавьте параметр к объекту команды sql и установите байтовый массив в качестве значения параметра:

command.Parameters.AddWithValue("@parameter_name", myByteArray);

Если не использовать хранимую процедуру, вы, вероятно, можете сделать то же самое с параметризованным оператором sql, но я никогда не пробовал этого, поэтому не могу привести пример.

Edit:

Вы используете параметризованный запрос, что не мое, поэтому я не могу гарантировать, что это будет работать. Но вот код, который должен помочь вам.

RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;

Двоичное значение должно быть представлено как параметр (@bin_value), а значение задается оператором AddWithValue. Имя параметра не обязательно должно совпадать с именем столбца.

Пара замечаний: я бы предложил использовать имена столбцов в вашем выражении вставки, а не в зависимости от положения столбца. Кроме того, я не знаю, что вы подразумеваете под «таблицей (1)» - это на самом деле имя таблица

1 голос
/ 07 февраля 2010

Предполагая, что:

CREATE TABLE [dbo].[varb_table] (
  [ID] [int] IDENTITY(1,1) NOT NULL,
  [BinaryData] [varbinary](max) NULL,
  CONSTRAINT [PK_varb_table] PRIMARY KEY CLUSTERED 
)

Использование:

INSERT INTO varb_table 
  (ID, BinaryData)
VALUES 
  (NULL, 0x);

DECLARE @pk
SET @pk = @@IDENTITY;

UPDATE varb_table
   SET BinaryData.Write (@your_byte_array, 0, DATALENGTH(BinaryData))
 WHERE ID = @pk
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...