我有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
答案 0 :(得分:0)
插入1语句插入字符串'Libraries \ Pictures \ Lotus.jpg'而不是图像。 这就是为什么当你访问它时会产生无效的参数错误。
如果你必须存储图像,你必须使用BLOB