sql >> Database >  >> RDS >> Sqlserver

Voeg Bytes-array in IN varbinary(max) record

Gebruik een opgeslagen procedure, maak gewoon een parameter van het type varbinary(max) en voeg deze in de tabel in zoals u dat met elk gegevenstype zou doen.

Voeg in uw c# (of vb of wat dan ook) code een parameter toe aan uw sql-opdrachtobject en stel de bytearray in als de parameterwaarde:

command.Parameters.AddWithValue("@parameter_name", myByteArray);

Als je geen opgeslagen procedure gebruikt, kun je waarschijnlijk hetzelfde doen met een SQL-instructie met parameters, maar ik heb dat nooit geprobeerd, dus ik kan geen voorbeeld geven.

Bewerken:

U gebruikt een geparametriseerde query, wat niet mijn ding is, dus ik kan niet garanderen dat dit zal werken. Maar hier is een code die je op weg zou moeten helpen.

RemoteSQLcmd = New SqlCommand("INSERT INTO Table(1) Values (newid(), ProductID, @bin_value", RemoteSQLConn)
RemoteSQLcmd.Parameters.AddWithValue(@bin_value", imSource) ;

De binaire waarde moet worden weergegeven als een parameter (@bin_value), en de waarde wordt ingesteld door de AddWithValue-instructie. De parameternaam hoeft niet overeen te komen met de kolomnaam.

Een paar opmerkingen:ik zou willen voorstellen om kolomnamen te gebruiken in uw insert-instructie in plaats van afhankelijk te zijn van de kolompositie. Ik weet ook niet wat u bedoelt met 'tabel(1)' - is dat eigenlijk de naam van de tabel?



  1. INFO-uitvoer ondanks SET client_min_messages TO WAARSCHUWING vlak ervoor

  2. Hoe Mysql te partitioneren over MEERDERE SERVERS?

  3. Een toekomstige tijd weergeven in PostgreSQL

  4. Laravel 5:voer migraties uit in een serveromgeving, niet lokaal