Till now I have explained you regarding Select, Insert, Update, Delete-CRUD operation using Linq to Sql classes in asp net , Inserting bulk records using JavaScript, asp.net, Open-Close or Show-Hide Ajax Modalpopupextender using JavaScript in asp.net, How to call javascript function after specific time period.
Today I am going to explain you regarding Insert Retrieve images from Database in asp.net LINQ TO SQL.
Step-1 Create one table Tbl_Image like below:

Step-2 Design one Aspx page ‘UploadImage.aspx’ like below:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadImage.aspx.cs" Inherits="Learning.UploadImage" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Image Name:
</td>
<td>
<asp:TextBox ID="txtImageName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Upload Image:</td>
<td>
<asp:FileUpload ID="ImageUpload" runat="server" /></td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="btnSave" Text="Save" runat="server" OnClick="btnSave_Click"/></td>
</tr>
</table>
<table>
<tr>
<td>
<asp:GridView ID="GrdDispalyImage" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="ImageName" HeaderText="Image Name" />
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:Image ID="imgdisplay" runat="server" ImageUrl='<%# "ImageHandler.ashx?ImID="+ Eval("ImgId") %>' Height="150px" Width="150px"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
Step 3: After that add ‘using System.Data.Linq’ namespace and Write below code in code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Linq;
namespace Learning
{
public partial class UploadImage : System.Web.UI.Page
{
//Create object of Dbml file.
DataClasses1DataContext DBcontext = new DataClasses1DataContext();
protected void Page_Load(object sender, EventArgs e)
{
DispalyImage();
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (ImageUpload.HasFile && ImageUpload.PostedFile.ContentLength > 0)
{
//Create object of table 'Tbl_Image';
Tbl_Image img = new Tbl_Image();
string imagename = txtImageName.Text;
img.ImageName = txtImageName.Text;
//create a byte array to store the binary image data;
Byte[] imgbyte = ImageUpload.FileBytes;
Binary Binarydta = new Binary(imgbyte);
img.Image = Binarydta;//This is converted image data.
DBcontext.Tbl_Images.InsertOnSubmit(img);
DBcontext.SubmitChanges();
ScriptManager.RegisterStartupScript(this, this.GetType(), "alertmessage", "javascript:alert('" + imagename + " image inserted successfully')", true);
txtImageName.Text = "";
DispalyImage();
}
}
//This method is useful just fetch name and Id..
public void DispalyImage()
{
var vv = from v in DBcontext.Tbl_Images
select new
{
v.ImageName,
v.ImgId,
};
GrdDispalyImage.DataSource = vv;
GrdDispalyImage.DataBind();
}
}
}
Step 4:
After that Right Click at Project and Add GenericHandler.ashx provide name ImageHandler.ashx Generic handler is one type of class that allow us to Process request and return a response to browser.
After that open ImageHandler.ashx.cs and write below code and also add using System.IO namespace.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
namespace Learning
{
public class ImageHandler : IHttpHandler
{
DataClasses1DataContext DBcontext = new DataClasses1DataContext();
public void ProcessRequest(HttpContext context)
{
string imageid = context.Request.QueryString["ImID"];
Stream strm = Display(imageid);
byte[] buffer = new byte[4096];
int byteseq = strm.Read(buffer, 0, 4096);
while (byteseq > 0)
{
context.Response.OutputStream.Write(buffer, 0, byteseq);
byteseq = strm.Read(buffer, 0, 4096);
}
}
public bool IsReusable
{
get
{
return false;
}
}
//This method is for Fetch image file...
public Stream Display(string ImId)
{
var ss = (from s in DBcontext.Tbl_Images where s.ImgId == Convert.ToInt32(ImId) select s).First();
return new MemoryStream(ss.Image.ToArray());
}
}
}
Step-5 Live Demo:
Download sample of Insert Retrieve images from Database in asp.net LINQ TO SQL
