Click here to Skip to main content
15,886,026 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I'm trying to retrieve image from database through using dataset to show in grid view,
DB saved as byte

What I have tried:

ASP.NET
<pre><asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Image_ID" DataSourceID="SqlDataSource2">
            <Columns>
                <asp:BoundField DataField="CarID" HeaderText="CarID" SortExpression="CarID" />
                <asp:ImageField DataAlternateTextField="Image_Front" DataImageUrlField="Image_Front" HeaderText="image front">
                </asp:ImageField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" SelectCommand="SELECT * FROM [Image]"></asp:SqlDataSource>
Posted
Updated 31-Oct-18 19:11pm

ASPX:

ASP.NET
<asp:GridView runat="server"  ID="grd" OnRowDataBound ="grd_RowDataBound"  >
                <Columns>
                    <asp:TemplateField HeaderText="image">
                        <ItemTemplate>
                          <img src='<%# Eval("imagedata") %>' id="imageControl" runat="server" />
                        </ItemTemplate>   
                    </asp:TemplateField> 
                </Columns>
</asp:GridView>


CS:

C#
protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if(e.Row.RowType==DataControlRowType.DataRow)
        {
            System.Web.UI.HtmlControls.HtmlImage imageControl = (System.Web.UI.HtmlControls.HtmlImage)e.Row.FindControl("imageControl");
            if (((DataRowView)e.Row.DataItem)["imagedata"] != DBNull.Value)
            {
                imageControl.Src = "data:image/png;base64," + Convert.ToBase64String((byte[])(((DataRowView)e.Row.DataItem))["imagedata"]);
            }
        }
    }
 
Share this answer
 
Comments
Niced Moral 31-Oct-18 23:09pm    
thank you for your help but this error appeairs

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'imagedata'.
[no name] 1-Nov-18 0:13am    
Sir imagedata is your database column which contain binary byte image
Niced Moral 1-Nov-18 1:08am    
appreciate your help sir, worked,thank you very much :).
BC for VB:
<pre>If e.Row.RowType = DataControlRowType.DataRow Then
            Dim imageControl As System.Web.UI.HtmlControls.HtmlImage = CType(e.Row.FindControl("imageControl"), System.Web.UI.HtmlControls.HtmlImage)

            If (CType(e.Row.DataItem, DataRowView))("imagedata") IsNot DBNull.Value Then
                imageControl.Src = "data:image/png;base64," & Convert.ToBase64String(CType(((CType(e.Row.DataItem, DataRowView)))("imagedata"), Byte()))
            End If
        End If
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900