-->

How to insert image into database and display in Gidview without Image Handler.

Introduction

In this post, I explain how to insert an image into a database and display it in gridview without Image Handler.


Steps : 

Step-1 : Create New Project

Go to File > New > Project > Select asp.net web forms application > Entry Application Name > Click OK.

Step-2: Add a Database.

Go to Solution Explorer > Right Click on App_Data folder > Add > New item > Select SQL Server Database Under Data > Enter Database name > Add.

Step-3: Create a table (for store image).

Open Database > Right Click on Table > Add New Table > Add Columns > Save > Enter table name > Ok.

Step-4: Add Entity Data Model.

Go to Solution Explorer > Right Click on Project name form Solution Explorer > Add > New item > Select ADO.net Entity Data Model under data > Enter model name > Add.
A popup window will come (Entity Data Model Wizard) > Select Generate from database > Next >
Chose your data connection > select your database > next > Select tables > enter Model Namespace > Finish.

Step-5: Add Web Page.

Go to Solution Explorer > Right Click on Project under solution explorer > Add > New item > Select Web Form using Master Page under web > Enter Name > > Select Master Page>Add.

Here is HTML Code
  1. <h3>My Image Gallery</h3>
  2. <div>
  3. <table>
  4. <tr>
  5. <td>Image Title : </td>
  6. <td>
  7. <asp:TextBox ID="txtImageTitle" runat="server"></asp:TextBox></td>
  8. </tr>
  9. <tr>
  10. <td>Image : </td>
  11. <td>
  12. <asp:FileUpload ID="FUImage" runat="server" /></td>
  13. </tr>
  14. <tr>
  15. <td></td>
  16. <td>
  17. <asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" />
  18. <asp:Label ID="lblMsg" runat="server" />
  19. </td>
  20. </tr>
  21. </table>
  22. <br />
  23. <div>
  24. <asp:GridView ID="gvGallery" runat="server" AutoGenerateColumns="false" Width="50%">
  25. <EmptyDataTemplate>
  26. <div style="text-align:center">
  27. No Image Found
  28. </div>
  29. </EmptyDataTemplate>
  30. <Columns>
  31. <asp:BoundField HeaderText="Title" DataField="ImageTitle" />
  32. <asp:TemplateField ItemStyle-Width="150px">
  33. <ItemTemplate>
  34. <asp:Image ID="Image1" runat="server" Width="100px" ImageUrl='<%#Eval("Picture").ToString() == ""?"": GetImageString64((byte[])Eval("Picture")) %>' />
  35. </ItemTemplate>
  36. </asp:TemplateField>
  37. </Columns>
  38. </asp:GridView>
  39. </div>
  40. </div>



Step-6: Add Code For Populate Image in gridview.

Write the followings code in your page load event for fetch Data from Database and show in gridview. 

PAGE LOAD CODE 
  1. if (!IsPostBack)
  2. {
  3. PopulateGallery();
  4. }
         
And Here is the function code
  1. private void PopulateGallery()
  2. {
  3. // here code for populate image gallery
  4. using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
  5. {
  6. List<ImageGallery> imgGallery = new List<ImageGallery>();
  7. imgGallery = dc.ImageGalleries.ToList();
  8. gvGallery.DataSource = imgGallery;
  9. gvGallery.DataBind();
  10. }
  11. }
Write below function to your page For Convert byte image data to base64String.
  1. protected string GetImageString64(byte[] Image)
  2. {
  3. // For convert byte image to base 64 string
  4. string base64String = Convert.ToBase64String(Image, 0, Image.Length);
  5. return "data:image/png;base64 ," + base64String;
  6. }

Step-7: Add Code For Save Image.

Write the followings code in Button Click event for save an image to the database.

  1. protected void btnSave_Click(object sender, EventArgs e)
  2. {
  3. // Code for Save Image
  4. if (FUImage.HasFile)
  5. {
  6. int length = FUImage.PostedFile.ContentLength;
  7. byte[] img = new byte[length];
  8. FUImage.PostedFile.InputStream.Read(img, 0, length);
  9. ImageGallery ig = new ImageGallery
  10. {
  11. SLID = 0,
  12. ImageTitle = txtImageTitle.Text.Trim(),
  13. Picture = img
  14. };
  15. using (MyDatabaseEntities1 dc = new MyDatabaseEntities1())
  16. {
  17. dc.ImageGalleries.Add(ig);
  18. dc.SaveChanges();
  19. lblMsg.Text = "Successfully Saved";
  20.  
  21. // populate Gallery image Here
  22. PopulateGallery();
  23. }
  24. }
  25. }
If you are not using Entity Framework, write the below code in button click event for saving an image to a database.
  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. if (FUImage.HasFile)
  4. {
  5. int length = FUImage.PostedFile.ContentLength;
  6. byte[] imgbyte = new byte[length];
  7. HttpPostedFile img = FUImage.PostedFile;
  8. img.InputStream.Read(imgbyte, 0, length);
  9. SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
  10. connection.Open();
  11. SqlCommand cmd = new SqlCommand("INSERT INTO ImageGallery (ImageTitle, Picture) VALUES (@ImageTitle,@Picture)", connection);
  12. cmd.Parameters.Add("@ImageTitle", SqlDbType.VarChar,150).Value = txtImageTitle.Text.Trim();
  13. cmd.Parameters.Add("@Picture", SqlDbType.Image).Value = imgbyte;
  14. int count = cmd.ExecuteNonQuery();
  15. connection.Close();
  16. }
  17. }

STEP-8: Run Application

Run Application and Get result in your browser.

Give me a +1 if it is helpful. Thank You

Hello ! My name is Sourav Mondal. I am a software developer working in Microsoft .NET technologies since 2010.

I like to share my working experience, research and knowledge through my site.

I love developing applications in Microsoft Technologies including Asp.Net webforms, mvc, winforms, c#.net, sql server, entity framework, Ajax, Jquery, web api, web service and more.

Related Posts: