Niced Moral Ответов: 2

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>

2 Ответов

Рейтинг:
13

Sandeep1003

Aspx-файл:

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

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"]);
            }
        }
    }


Niced Moral

спасибо за вашу помощь но эта ошибка появляется

Привязка данных: 'System.Data.DataRowView' не содержит свойства с именем 'imagedata'.

[no name]

Сэр, она находится в столбце базы данных, которые содержат двоичный байт изображения

Niced Moral

ценю вашу помощь, сэр, работал,большое вам спасибо :).

Рейтинг:
10

Niced Moral

До н. э. на 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