Asp.net如何从数据库二进制字节到数据集查看图像到网格视图 [英] Asp.net how can I view image from database binary byte through dataset to grid view

查看:62
本文介绍了Asp.net如何从数据库二进制字节到数据集查看图像到网格视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过使用数据集在网格视图中显示从数据库中检索图像,

DB保存为字节



< b>我尝试了什么:



 <   pre  >  <   asp:GridView     ID   =  GridView1    runat   =  server    AutoGenerateColumns   =  False    DataKeyNames   =  Image_ID    DataSourceID   =  SqlDataSource2 >  
< >
< asp:BoundField DataField = CarID HeaderText = CarID SortExpression = CarID / >
< asp:ImageField DataAlternateTextField = Image_Front DataImageUrlField = Image_Front HeaderText = image front >
< / asp:ImageField >
< /列 >
< / asp:GridView >
< asp:SqlDataSource ID = SqlDataSource2 runat = server ConnectionString = <% $ ConnectionStrings:DBConnectionString%> SelectCommand = SELECT * FROM [Image] > < / asp:SqlDataSource >

解决方案

ConnectionStrings:DBConnectionString%> SelectCommand = SELECT * FROM [Image] > < / asp:SqlDataSource >


ASPX:



< pre lang =HTML> < asp:GridView runat = server ID = grd OnRowDataBound = grd_RowDataBound >
< >
< asp:TemplateField HeaderText = image >
< ItemTemplate >
< img src =' <% #Eval( imagedata)%>' id = imageControl runat = server / >
< / ItemTemplate >
< / asp:TemplateField >
< /列 >
< / asp:GridView >





CS:



< pre lang =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]);
}
}
}


BC for VB:

< pre>如果e.Row.RowType = DataControlRowType.DataRow那么
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然后
imageControl.Src =data:image / png; base64,& Convert.ToBase64String(CType(((CType(e.Row.DataItem,DataRowView)))(imagedata),Byte()))
结束如果
结束如果


I'm trying to retrieve image from database through using dataset to show in grid view,
DB saved as byte

What I have tried:

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

解决方案

ConnectionStrings:DBConnectionString %>" SelectCommand="SELECT * FROM [Image]"></asp:SqlDataSource>


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


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


这篇关于Asp.net如何从数据库二进制字节到数据集查看图像到网格视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆