I'm doing an application in Asp.NET
, with Entity Framework
and using the database Oracle
and it's the following I'm uploading the image by a button
and saving in the database with type% I want to be able to do this, but I need to have the image appear on the screen along with information from another table called BLOB
, I was thinking of popular line by line with PRODUTOS
, but I could not.
Database with BLOB image
Entity
GridViewwithimage
GridviewRenderinginBrowser
privatevoidcarregarImagem(){dt.Columns.Add("id");
dt.Columns.Add("nome");
dt.Columns.Add("valor_unit");
dt.Columns.Add("imagem1");
ProjetoContext bd = new ProjetoContext();
List<PRODUTO> produtos = bd.PRODUTOes.ToList();
List<IMG_PRODUTO> imagem = bd.IMG_PRODUTO.ToList();
foreach (PRODUTO pr in produtos)
{
IMG_PRODUTO im = bd.IMG_PRODUTO.Find(pr.ID_IMAGEM);
if (im != null && pr.ID_IMAGEM != 0)
{
//Image img = (Image)GridProdutos.Rows[1].Cells[4].FindControl
byte[] byteImagem = im.IMAGEM;
string img64Frente = Convert.ToBase64String(byteImagem);
string imagemDataUrl =
String.Format("data:image/png;base64, {0}", img64Frente);
//img.ImageUrl = imagemDataUrl;
dt.Rows.Add(pr.ID, pr.NOME, pr.VALOR_UNIT, imagemDataUrl);
}
}
GridProdutos.DataSource = dt;
GridProdutos.DataBind();
}
HTML CODE
<asp:GridView ID="GridProdutos" runat="server" AutoGenerateColumns ="false" OnRowCommand ="GridProdutos_RowCommand" AllowPaging="true" OnPageIndexChanging="GridProdutos_PageIndexChanging" OnRowDataBound ="GridProdutos_RowDataBound">
<columns>
<asp:BoundField DataField ="id" HeaderText="Index" />
<asp:BoundField DataField ="nome" HeaderText="Nome do Produto" />
<asp:BoundField DataField ="valor_unit" DataFormatString="{0:c}" HeaderText="Valor Unitario" />
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Width="100" Height="100" />
<asp:Button ID ="btnAdiciona" runat="server" CommandName="AddItem" Text="Add Carrinho" CommandArgument='<%# Bind("id") %>'/>
</ItemTemplate>
</asp:TemplateField>
</columns>
</asp:GridView>