Ved hjælp af en lagret procedure skal du bare oprette en parameter af typen varbinary(max) og indsætte den i tabellen, som du ville gøre med enhver datatype.
Tilføj en parameter til dit sql-kommandoobjekt i din c# (eller vb eller hvad som helst) kode og indstil byte-arrayet som parameterværdien:
command.Parameters.AddWithValue("@parameter_name", myByteArray);
Hvis du ikke bruger en lagret procedure, kan du sikkert gøre det samme med en parameteriseret sql-sætning, men det har jeg aldrig prøvet, så jeg kan ikke give et eksempel.
Rediger:
Du bruger en parametriseret forespørgsel, hvilket ikke er min ting, så jeg kan ikke garantere, at dette vil virke. Men her er noget kode, der burde få dig i gang.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;
Den binære værdi skal repræsenteres som en parameter (@bin_value), og værdien indstilles af AddWithValue-sætningen. Parameternavnet behøver ikke at svare til kolonnenavnet.
Et par bemærkninger:Jeg vil foreslå, at du bruger kolonnenavne i din indsæt-sætning i stedet for at være afhængig af kolonneposition. Jeg ved heller ikke, hvad du mener med 'tabel(1)' - er det faktisk navnet på tabellen?