Korzystając z procedury składowanej, po prostu utwórz parametr typu varbinary(max) i wstaw go do tabeli, tak jak każdy typ danych.
W kodzie c# (lub vb lub cokolwiek innego) dodaj parametr do obiektu polecenia sql i ustaw tablicę bajtów jako wartość parametru:
command.Parameters.AddWithValue("@parameter_name", myByteArray);
Jeśli nie używasz procedury składowanej, prawdopodobnie możesz zrobić to samo za pomocą sparametryzowanej instrukcji sql, ale nigdy tego nie próbowałem, więc nie mogę podać przykładu.
Edycja:
Używasz sparametryzowanego zapytania, co nie jest moją sprawą, więc nie mogę zagwarantować, że to zadziała. Ale oto kod, który powinien Ci pomóc.
RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;
Wartość binarna musi być reprezentowana jako parametr (@bin_value), a wartość jest ustawiana przez instrukcję AddWithValue. Nazwa parametru nie musi odpowiadać nazwie kolumny.
Kilka uwag:sugerowałbym używanie nazw kolumn w instrukcji wstawiania, a nie zależnie od pozycji kolumny. Ponadto nie wiem, co masz na myśli przez „table(1)” - czy to rzeczywiście nazwa tabeli?