正常图像插入和插入为批量BLOB之间的差异

时间:2012-09-07 09:25:15

标签: sql image blob

我有sql数据库和表格图片,在该表格中有2 Columns ID(身份),DisplayImage(图片)。表格有第一行的2行我写了

insert into Image values(1,'Libraries\Pictures\Lotus.jpg')

和第二行

INSERT INTO [dbo].[Image] ([Id],Images)
SELECT 2,
(select * FROM OPENROWSET(BULK 'C:\Users\Public\Pictures\Sample Pictures\Tulips.jpg', SINGLE_BLOB) AS BLOB)

以下是阅读图片的代码

WebClient instanceHTTP = new WebClient();
            Uri MyUri = new Uri("http://localhost:52293/WebSite/ImageHandler.ashx?ImageId=" + TextBox5.Text);    //TextBox5.Text for id i.e 1 or 2
            Stream returnValue;
        returnValue = instanceHTTP.OpenRead(MyUri);


 **System.Drawing.Image MyImage = System.Drawing.Image.FromStream(returnValue);**  
// Error if id=1 used i.e normal insert

        bytearray = imageToByteArray(MyImage);

                    MyImage.Dispose();

如果我使用正常插入的id 1而不是无效Parmeter的错误 但如果我使用id 2它运行正常。 那么区别是什么呢??以及为了运行正常插入图像我必须做出哪些更改..我不想在插入语句中使用AS BLOB

1 个答案:

答案 0 :(得分:0)

插入1语句插入字符串'Libraries \ Pictures \ Lotus.jpg'而不是图像。 这就是为什么当你访问它时会产生无效的参数错误。

如果你必须存储图像,你必须使用BLOB