Как я могу получить изображения, хранящиеся в SQL Server как типы данных Varbinary (max) для отображения в Gridview? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть основная таблица сотрудников, которая включает столбец HandWrittenSignature как тип данных Varbinary (Max). Я не могу заставить C # Gridview отображать этот столбец.

Я попытался использовать ImageHandler.aspx, но он не может отобразить изображение, и я попытался Convert.ToBase64, и он также не работает. Никто в Интернете, похоже, не имеет ответа на этот вопрос.


<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;
        }
    }
...