Asp.net如何从数据库二进制字节到数据集查看图像到网格视图 [英] Asp.net how can I view image from database binary byte through dataset to grid view
问题描述
我正在尝试通过使用数据集在网格视图中显示从数据库中检索图像,
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屋!