Question : How to insert a single blob?

Hello,

I inserted a picture into an image field in SQL server using following query.

UPDATE dbo.Photo SET Document =
(SELECT * FROM
OPENROWSET(BULK 'C:\Pictures\Lighthouse.jpg', SINGLE_BLOB) AS ORS)

When i render this image in an ASP.NET web page it works fine. I use this code block:

   var photoQuery = (from inp in db.Photos
                                        select new { Id = inp.ID, Document = inp.Document, Name = inp.ID });

            foreach (var item in photoQuery)
            {
                Photo photo = new Photo();
                byte[] picture = (byte[])(item.Document);
                MemoryStream ms = new MemoryStream(picture);
                System.Drawing.Image image = System.Drawing.Image.FromStream(ms);

                photo.Listing_ID = item.Id;
                photo.Name = item.Name.ToString();
                using (var memoryStream = new MemoryStream())
                {
                    image.Save(memoryStream, ImageFormat.Jpeg);
                    photo.Data = memoryStream.ToArray();

                }

                images.Add(photo);
            }
until this point everything works fine.

but when i look in the field in SQL server i see a long binary hexidecimal string. These are the first few characters:

0xFFD8FFE000104A46494600010100000100010000FFFE003E43524

Now what i'm attempting to do is to copy that last piece of data as a string into the image field in SQL server. I test this by doing:

UPDATE dbo.tbl_InspectionPhoto set INP_Document =
'0xFFD8FFE000104A46494600010100000100010000FFFE003E43524'

when i refresh my asp.net page, i get an error on System.Drawing.Image image = System.Drawing.Image.FromStream(ms):

The parameter is not valid.

Any help would be greatly appriciated.

Thanks in advance,

MA

Answer : How to insert a single blob?

Don't use quotes around the hex string. It is not a text string, but  hex encoded binary data.
Random Solutions  
 
programming4us programming4us