ASP.NET - 将图像数据从SQL Server转换为列表视图中的图像

问题描述:

我有一个页面将图像上传到SQL Server中的图像列,并将其转换为二进制文件...在另一页上我想要检索图像。我试图在列表视图中这样做:ASP.NET - 将图像数据从SQL Server转换为列表视图中的图像

<ItemTemplate> 
    <tr style=""> 
     <td> 
      <img src='data:image/jpg;base64,<%# Eval("Image") %>' /> 
     </td> 
     <td> 
      <asp:Label ID="ImageDescLabel" runat="server" Text='<%# Eval("ImageDesc") %>' /> 
     </td> 
    </tr> 
</ItemTemplate> 

我做错了什么?我认为这将是解决这个问题的最好方法。

保存图像的代码如下所示:

void InsertImage() 
    { 
     byte[] theFile = new byte[FileUpload1.PostedFile.ContentLength]; 
     HttpPostedFile file = FileUpload1.PostedFile; 
     file.InputStream.Read(theFile, 0, (int)FileUpload1.PostedFile.ContentLength); 

     if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.FileName != "") 
     { 
      int result = new _Image() 
       { 
        ImageName = txtFileName.Text, 
        ImageFile = theFile, 
        ImageDesc = txtDescription.Text 
       }.AddImage(); 

      txtFileName.Text = ""; 
      txtDescription.Text = ""; 
     } 
    } 
+0

真正重要的是** ado.net **操作代码。 –

+0

@雷洋我不确定我明白你的意思。 –

+0

我们怎样才能谈论数据库没有单行相关的代码? –

您试图在这一行Eval("Image")使用byte[]代替base64 string

data:image/jpg;base64,<%# Eval("Image") %> 

将返回其不受html支持的byte array你你能Convert.ToBase64String(img) img应该是byte[]

+0

当我将图像插入数据库时​​,我会添加吗?或之后?如果之后,你会把它放在哪里? –

+0

这将是当你从数据库中检索后的图像,因为它会从二进制 – Usman

+0

如果你有问题,你可以粘贴SQL代码数据retrival – Usman