Click here to Skip to main content
15,891,864 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

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
 
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 :).

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