首页   关于我们   网站建设   上海兼职网站制作  兼职网站设计  网站案例   网站知识   联系我们   

使用DataGrid显示来自于数据库的图象_web

发布于:2007-9-30 已被阅读: 次 来源:上兼职海网站建设

前言我们如何创建一个DataGrid列,显示从数据库中获得的图像?这是一个经常被问及的关于DataGrid控件的问题,而且其他可以很容易地通过结合你已经知道的关于模板列的内容以及一点点关于HTTP处理句柄(HTTP Handler)的知识来回答。下面使用NorthWind数据库的Employees表来在一个DataGrid中显示数据库中的图像。代码--- BindImg.ASPx<%@ Page language="c#" Codebehind="BindImg.ASPx.cs" AutoEventWireup="false" Inherits="ShowImg.BindImg" %><HTML> <HEAD> <title>BindImg<网站title> <网站HEAD> <body> <form id="Form1" method="post" runat="server"> <FONT face="宋体"> <ASP:DataGrid id="MyDataGrid" runat="server" AutoGenerateColumns="False" Width="632px"> <AlternatingItemStyle BackColor="Beige"><网站AlternatingItemStyle> <HeaderStyle HorizontalAlign="Center"><网站HeaderStyle> <Columns> <ASP:TemplateColumn HeaderText="Photo"> <ItemTemplate> <img src=..网站..网站'<%# "GetImg.ashx?ID="+DataBinder.Eval(Container.DataItem,"EmployeeID")%>'> <网站ItemTemplate> <网站ASP:TemplateColumn> <ASP:BoundColumn DataField="LastName" HeaderText="Last Name"><网站ASP:BoundColumn> <ASP:BoundColumn DataField="FirstName" HeaderText="First Name"><网站ASP:BoundColumn> <ASP:BoundColumn DataField="title" HeaderText="Title"><网站ASP:BoundColumn> <网站Columns> <网站ASP:DataGrid><网站FONT> <网站form> <网站body><网站HTML>--- BindImg.ASPx.csusing System;using System.Data;using System.Drawing;using System.Web;using System.Data.SqlClient;namespace ShowImg{ web网站 <summary> web网站 BindImg 的摘要说明。 web网站 <网站summary> public class BindImg : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid MyDataGrid; private void Page_Load(object sender, System.EventArgs e) { web 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { SqlConnection conn = new SqlConnection(@"Server=shoutor\mydb;database=northwind;uid=sa;Pwd=shoutor"); try { conn.Open(); SqlCommand cmd = new SqlCommand("select employeeID,lastname,firstname,title from employees",conn); SqlDataReader reader = cmd.ExecuteReader(); MyDataGrid.DataSource = reader; MyDataGrid.DataBind(); } finally { conn.Close(); } } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { web web CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 web InitializeComponent(); base.OnInit(e); } web网站 <summary> web网站 设计器支持所需的方法 - 不要使用代码编辑器修改 web网站 此方法的内容。 web网站 <网站summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion }}--- GetImg.ashx<%@ WebHandler Language="C#" Class="ShowImg.GetImg" %> --- GetImg.ASPx.csusing System;using System.Web;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Drawing.Imaging;using System.IO;namespace ShowImg{ web网站 <summary> web网站 GetImg 的摘要说明。 web网站 <网站summary> public class GetImg : IHttpHandler { public void ProcessRequest(HttpContext context) { string id = (string)context.Request["id"]; if(id!=null) { MemoryStream stream = new MemoryStream(); SqlConnection conn = new SqlConnection(@"Server=shoutor\mydb;database=northwind;uid=sa;Pwd=shoutor"); Bitmap bm = null; Image image = null; try { conn.Open(); SqlCommand cmd = new SqlCommand("select photo from employees where employeeid='"+id+"'",conn); byte[] blob = (byte[])cmd.ExecuteScalar(); stream.Write (blob,78,blob.Length-78); bm = new Bitmap(stream); int width=48; int height = (int)(width*((double)bm.Height网站(double)bm.Width)); web GetThumbnailImage生成缩略图 image = bm.GetThumbnailImage(width,height,null,IntPtr.Zero); context.Response.ContentType = "image网站jpeg"; image.Save(context.Response.OutputStream,ImageFormat.Jpeg); } finally { if(image!=null) image.Dispose(); if(bm!=null) bm.Dispose(); stream.Close(); conn.Close(); } } } web 实现成员接口(System.Web.IHttpHandler.IsReusable) public bool IsReusable { get { return true; } } }} 总结作为额外的补充,ProcessRequest还使用了空架类库的易用的Image.GetThumbnailImage方法来把位图缩小到宽度为48像素,同时保持图象的长宽比。可以使用类似的技术来创建显示来自其他数据库图象的DataGrid。基本的思想是使用模板列来输出一个引用某个HTTP处理句柄的<img>标签,并在查询字符串中包含唯一标识图片所在的记录的信息。之后,HTTP处理句柄使用ADO.NET来获取图象数据位,并使用GDI+(图象设备接口+)来构建图象。 更多内容请看Linux数据库宝典  城域网专题  数据库安全技术专题专题,或进入讨论组讨论。 建设 数据库人员面试:SQL Server常用测试题(1)PHP连接数据库的方法(3)[冷枫推荐]:数据库操作,内外联查询,分组查询,用JSP从数据库中读取图片并显示在网页上 上兼职海网站建设

网站建设相关信息

上兼职海网站建设服务

一、网站建设套餐A型
1个英文.COM域名
80M独立网站空间
25M邮件空间,5个企业邮箱
1个FLASH首页,10个精美内页
网站建设优惠价:面谈

二、网站建设套餐B型
1个英文.COM域名
120M独立网站空间,加75M备份,免费Access数据库
50M邮件空间,10个企业邮箱
1个FLASH首页,20个精美内页
1个新闻发布系统
1个计数器,一个留言板
网站建设优惠价:面谈

三、网站建设套餐C型
1个英文.COM域名
250M独立网站空间,加125M备份,免费Access数据库
100M邮件空间,20个企业邮箱
1个FLASH首页,30个精美内页
一个新闻发布系统
一个产品发布系统
1个计数器,一个留言板
网站建设优惠价:面谈

网站知识

什么是网站运营?
网络营销-网站优化
提高博客人气的方法
整站优化要注意平衡
如何为企业的网站建设准备
高难上海兼职网站制作的心得
什么样网页布局是你最喜欢
一个好的网站建设应该
网页设计师的薪水标准
上海兼职网站制作中心对
保持网站建设制作流量