Använd en lagrad procedur, skapa bara en parameter av typen varbinary(max) och infoga den i tabellen som du skulle göra med vilken datatyp som helst.
I din c#-kod (eller vb eller vad som helst), lägg till en parameter till ditt SQL-kommandoobjekt och ställ in byte-arrayen som parametervärde:
command.Parameters.AddWithValue("@parameter_name", myByteArray);
Om du inte använder en lagrad procedur kan du förmodligen göra detsamma med en parameteriserad sql-sats, men jag har aldrig provat det, så jag kan inte ge ett exempel.
Redigera:
Du använder en parametriserad fråga, vilket inte är min grej, så jag kan inte garantera att detta kommer att fungera. Men här är lite kod som borde få dig igång.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;
Det binära värdet måste representeras som en parameter (@bin_value), och värdet sätts av AddWithValue-satsen. Parameternamnet behöver inte matcha kolumnnamnet.
Ett par anteckningar:Jag skulle föreslå att du använder kolumnnamn i din infogningssats snarare än beroende på kolumnposition. Dessutom vet jag inte vad du menar med 'tabell(1)' - är det faktiskt namnet på tabellen?