Tuesday, May 19, 2015

store image in database with image type and read image from database and display in gridview

.aspx file

        name<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        imagef<asp:FileUpload ID="FileUpload1" runat="server" />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        <br />
        <br />
        <br />
       
        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("id") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <a href='<%# string.Concat("/DisplayImg.ashx?id=", Eval("id"))%>' download='<%# string.Concat("",Eval("name")) %>'>
                        <asp:Image ID="Image1" runat="server" Height="46px" Width="97px" ImageUrl='<%# string.Concat("~/DisplayImg.ashx?id=", Eval("id"))%>'/>
                            </a>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Download">
                    <ItemTemplate>
                        <a href='<%# string.Concat("/DisplayImg.ashx?id=", Eval("id"))%>' download="file">Download</a>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>

        </asp:GridView>


.aspx.cs

BAL b = new BAL();
protected void Page_Load(object sender, EventArgs e)
    {
        GridView2.DataSource = b.bindempl();
        GridView2.DataBind();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Byte[] imgByte = null;
        if (FileUpload1.HasFile && FileUpload1.PostedFile != null)
        {
            HttpPostedFile File = FileUpload1.PostedFile;
            imgByte = new Byte[File.ContentLength];
            File.InputStream.Read(imgByte, 0, File.ContentLength);
            b.name = TextBox1.Text;
            b.imgbyte = imgByte;
            b.saveempl(b);

            GridView2.DataSource = b.bindempl();
            GridView2.DataBind();
        }
    }



DisplayImg.ashx

<%@ WebHandler Language="C#" Class="DisplayImg" %>

using System;
using System.Web;
using System.IO;

public class DisplayImg : IHttpHandler {
    BAL b = new BAL();
    public void ProcessRequest (HttpContext context)
    {
        Int32 theID;
        if (context.Request.QueryString["id"] != null)
            theID = Convert.ToInt32(context.Request.QueryString["id"]);
        else
            throw new ArgumentException("No parameter specified");

        context.Response.ContentType = "image/jpeg";
        Stream strm = b.DisplayImage(theID);
        byte[] buffer = new byte[2048];
        int byteSeq = strm.Read(buffer, 0, 2048);

        while (byteSeq > 0)
        {
            context.Response.OutputStream.Write(buffer, 0, byteSeq);
            byteSeq = strm.Read(buffer, 0, 2048);
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

BAL.cs
public class BAL:DAL
{
       public BAL()
       {
              //
              // TODO: Add constructor logic here
              //
       }

    //file in db
    public int id1 { get; set; }
    public string name { get; set; }
    public byte[] imgbyte { get; set; }


   
}
DAL.cs


public Stream DisplayImage(int theID)
    {
        string sql = "SELECT image FROM empl WHERE id = @ID";
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@ID", theID);
        con.Open();
        object theImg = cmd.ExecuteScalar();
        try
        {
            return new MemoryStream((byte[])theImg);
        }
        catch
        {
            return null;
        }
        finally
        {
            con.Close();
        }
    }

    public DataSet bindempl()
    {
        cmd = new SqlCommand("select * from empl", con);
        cmd.CommandType = CommandType.Text;
        da = new SqlDataAdapter(cmd);
        ds = new DataSet();
        da.Fill(ds);
        return ds;
    }

No comments:

Post a Comment