Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserir matriz de bytes no registro varbinary(max)


Usando um procedimento armazenado, basta criar um parâmetro do tipo varbinary(max) e inseri-lo na tabela como faria com qualquer tipo de dado.

Em seu código c# (ou vb ou qualquer outro), adicione um parâmetro ao seu objeto de comando sql e defina a matriz de bytes como o valor do parâmetro:
command.Parameters.AddWithValue("@parameter_name", myByteArray);

Se não estiver usando um procedimento armazenado, você provavelmente pode fazer o mesmo com uma instrução sql parametrizada, mas eu nunca tentei isso, então não posso dar um exemplo.

Editar:

Você está usando uma consulta parametrizada, que não é minha praia, então não posso garantir que isso funcione. Mas, aqui está um código que deve ajudá-lo.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;

O valor binário deve ser representado como um parâmetro (@bin_value) e o valor é definido pela instrução AddWithValue. O nome do parâmetro não precisa corresponder ao nome da coluna.

Algumas notas:sugiro usar nomes de colunas em sua instrução de inserção em vez de depender da posição da coluna. Além disso, não sei o que você quer dizer com 'tabela (1)' - esse é realmente o nome da tabela?