如何获取以Varbinary(max)数据类型存储在SQL Server中的图像以显示在Gridview上?

时间:2019-03-26 23:19:58

标签: image gridview varbinarymax

我有一个雇员主表,其中包含一个HandWrittenSignature列作为Varbinary(Max)数据类型。我无法使用C#Gridview显示该列。

我尝试使用ImageHandler.aspx,但是它无法显示图像,并且我尝试了Convert.ToBase64,它也失败了。 Web上似乎没有人对此问题有答案。


<asp:TemplateField HeaderText="Signature">
<ItemStyle HorizontalAlign="Center" Height="100px" Width="100px" Wrap="False" />
<ItemTemplate>
<asp:Image  ID="Image1" runat="server" ImageUrl='<%# "ImageHandler.ashx?ImID="+ Eval("HandWrittenSignature") %>' /> 
<!-- ImageUrl='<%#"data:Image/jpg;Base64," + Convert.ToBase64String((byte[])Eval("HandWrittenSignature")) %>' /> -->
</ItemTemplate>
</asp:TemplateField>

及其背后的代码如下:

  protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DataRowView dr = (DataRowView)e.Row.DataItem;
            string imageUrl = "data:image/jpg;base64," + Convert.ToBase64String((byte[])dr["HandWrittenSignature"]);
            (e.Row.FindControl("Image1") as Image).ImageUrl = imageUrl;
        }
    }

0 个答案:

没有答案