Verwenden Sie eine gespeicherte Prozedur, erstellen Sie einfach einen Parameter vom Typ varbinary(max) und fügen Sie ihn wie jeden anderen Datentyp in die Tabelle ein.
Fügen Sie in Ihrem C#-Code (oder VB oder was auch immer) einen Parameter zu Ihrem SQL-Befehlsobjekt hinzu und legen Sie das Byte-Array als Parameterwert fest:
command.Parameters.AddWithValue("@parameter_name", myByteArray);
Wenn Sie keine gespeicherte Prozedur verwenden, können Sie wahrscheinlich dasselbe mit einer parametrisierten SQL-Anweisung tun, aber ich habe das nie versucht, daher kann ich kein Beispiel geben.
Bearbeiten:
Sie verwenden eine parametrisierte Abfrage, was nicht mein Ding ist, daher kann ich nicht garantieren, dass dies funktioniert. Aber hier ist ein Code, der Sie zum Laufen bringen sollte.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;
Der Binärwert muss als Parameter (@bin_value) dargestellt werden, und der Wert wird durch die AddWithValue-Anweisung festgelegt. Der Parametername muss nicht mit dem Spaltennamen übereinstimmen.
Ein paar Anmerkungen:Ich würde vorschlagen, Spaltennamen in Ihrer Einfügeanweisung zu verwenden, anstatt von der Spaltenposition abzuhängen. Außerdem weiß ich nicht, was Sie mit "Tabelle (1)" meinen - ist das tatsächlich der Name der Tabelle?