sql >> Database teknologi >  >> RDS >> Sqlserver

Indsæt bytes array INTO varbinær(max) post

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?



  1. Enhver måde at automatisk generere et UML-diagram?

  2. Oracle får rækker, der nøjagtigt matcher listen over værdier

  3. Flere begrænsninger i tabel:Hvordan får man alle overtrædelser?

  4. Det ultimative MySQL legacy database mareridt