sql >> Databasteknik >  >> RDS >> Sqlserver

Infoga Bytes array INTO varbinary(max) post

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?



  1. mysql ändra int kolumn till bigint med främmande nycklar

  2. Villkorlig aggregeringsfråga med en grupp efter

  3. hur man kombinerar tabeller med 1 till många relationer till 1 postrad

  4. Hur man fyller i saknade datum i PostgreSQL med generation_series