In this article I explain how to insert an image into our project folder and insert an image of a path in the database and show images in a GridView.
First I created a database EmpDetail. Now I will create a table in this database.
Query Code
CREATE TABLE [dbo].[Image_Details](
[ImageId] [int] IDENTITY(1,1) NOT NULL,
[ImageName] [varchar](50) NULL,
[Image] [nvarchar](max) NULL
) ON [PRIMARY]
Now insert some data into the LoginDetail table.
Now the following procedure is used.
Step 1
Open Visual Studio 2012 and click "File" -> "New" -> "Web site...". A window is opened. In this window, select "Empty Web Site Application" under Visual C#.
Give the name of your application as "Display_Image_in_Gridview" and then click "Ok".
Step 2
Now we will need to add a folder to our website, check the following procedure.
Go to Solution Explorer then right-click on the solution then select "Add" then select "New Folder". Then provide the name of this folder.
Complete Program
Display_Image.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Display_Image.aspx.cs" Inherits="Display_Image" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<h3 style="color: #0000FF; font-style: italic">Display Image in GridView Using ASP.NET</h3>
<div>
<asp:FileUpload ID="fileupload" runat="server" />
<br />
<asp:Button ID="upload" runat="server" Font-Bold="true" Text="Upload" OnClick="upload_Click" />
<br />
<br />
</div>
<div>
<asp:GridView runat="server" ID="gdImage" HeaderStyle-BackColor="Tomato" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="ImageId" HeaderText="ImageId" />
<asp:BoundField DataField="ImageName" HeaderText="ImageName" />
<asp:ImageField DataImageUrlField="Image" HeaderText="Image"></asp:ImageField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
Display_Image.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Configuration;
public partial class Display_Image : System.Web.UI.Page
{
SqlConnection con;
SqlDataAdapter da;
DataSet ds;
SqlCommand cmd;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void upload_Click(object sender, EventArgs e)
{
try
{
string filename = Path.GetFileName(fileupload.PostedFile.FileName);
fileupload.SaveAs(Server.MapPath("~/Images/" + filename));
con = new SqlConnection(ConfigurationManager.ConnectionStrings["ImageSql"].ConnectionString);
con.Open();
cmd = new SqlCommand("insert into Image_Details (ImageName,Image) values(@ImageName,@Image)", con);
cmd.Parameters.AddWithValue("@ImageName", filename);
cmd.Parameters.AddWithValue("@Image", "Images/" + filename);
cmd.ExecuteNonQuery();
da = new SqlDataAdapter("select * from Image_Details",con);
ds = new DataSet();
da.Fill(ds);
gdImage.DataSource = ds;
gdImage.DataBind();
}
catch (Exception ex)
{
upload.Text = ex.Message;
}
}
}
Output
For more information, download the attached sample application.