Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="grdCategories" runat="server" DataKeyNames="CategoryID" Width="600px" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" /> <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" /> <asp:TemplateField> <ItemTemplate> <asp:Image ID="Image1" runat="server" ImageUrl='<%#"ImageHandler.ashx?CategoryID="+ Eval("CategoryID") %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html> Default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { NorthwindDataContext db = new NorthwindDataContext(); var cate = from c in db.Categories select new { CategoryName = c.CategoryName, CategoryID = c.CategoryID, Image = c.Picture, }; grdCategories.DataSource = cate; grdCategories.DataBind(); } } }ImageHandler.ashx
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO; using System.Drawing.Imaging; namespace WebApplication1 { public class ImageHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { HttpRequest req = context.Request; // string categoryID = "1"; string categoryID = req.QueryString["CategoryID"].ToString(); // Get information about the specified category NorthwindDataContext db = new NorthwindDataContext(); var category = from c in db.Categories where Convert.ToInt32(c.CategoryID) == Convert.ToInt32(categoryID) select c.Picture; int len = category.First().Length; // Output the binary data // But first we need to strip out the OLE header int OleHeaderLength = 78; int strippedImageLength = len - OleHeaderLength; byte[] imagdata = new byte[strippedImageLength]; Array.Copy(category.First().ToArray(), OleHeaderLength, imagdata, 0, strippedImageLength); if ((imagdata) != null) { MemoryStream m = new MemoryStream(imagdata); System.Drawing.Image image = System.Drawing.Image.FromStream(m); image.Save(context.Response.OutputStream, ImageFormat.Jpeg); } } public bool IsReusable { get { return false; } } } }
Wednesday, November 4, 2009
How To display Image using Linq To Sql
Labels:
Linq
Subscribe to:
Post Comments (Atom)


3 comments:
Error 2 The name 'ImageFormat' does not exist in the current context D:\Projects\ContactManager\Handler.ashx 36 55 D:\Projects\ContactManager\
Could not find an implementation of the query pattern for source type 'System.Data.Linq.Table'. 'Select' not found. Are you missing a reference to 'System.Core.dll' or a using directive for 'System.Linq'?
I have tried to do it work but could tell me how images will be uploaded as I am getting Cross signs
Post a Comment