Usando un procedimiento almacenado, simplemente cree un parámetro de tipo varbinary(max) e insértelo en la tabla como lo haría con cualquier tipo de datos.
En su código c# (o vb o lo que sea), agregue un parámetro a su objeto de comando sql y establezca la matriz de bytes como el valor del parámetro:
command.Parameters.AddWithValue("@parameter_name", myByteArray);
Si no usa un procedimiento almacenado, probablemente pueda hacer lo mismo con una instrucción sql parametrizada, pero nunca lo he intentado, así que no puedo dar un ejemplo.
Editar:
Está utilizando una consulta parametrizada, que no es lo mío, por lo que no puedo garantizar que esto funcione. Pero, aquí hay un código que debería ponerte en marcha.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;
El valor binario debe representarse como un parámetro (@bin_value) y el valor lo establece la instrucción AddWithValue. El nombre del parámetro no tiene que coincidir con el nombre de la columna.
Un par de notas:sugeriría usar nombres de columnas en su declaración de inserción en lugar de depender de la posición de la columna. Además, no sé a qué se refiere con 'tabla (1)'. ¿Es ese realmente el nombre de la tabla? /P>