Я хочу к INSERT INTO таблицу в записи varbinary (макс.) Массив байтов, Как я могу сделать это?
Используя хранимую процедуру, просто создайте параметр типа 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?
Предположим:
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