Вставьте массив Байтов В varbinary (макс.) записывают

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

5
задан Ben Lings 23 August 2010 в 09:13
поделиться

2 ответа

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

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

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

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

Изменить:

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

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

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

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

3
ответ дан 15 December 2019 в 01:00
поделиться

Предположим:

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
1
ответ дан 15 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: