結合ashx來在DataGrid中顯示從資料庫中讀出的圖片

來源:互聯網
上載者:User
datagrid|資料|資料庫|顯示 有關ashx尾碼名的檔案請看 消除圖片在ie中緩衝而無法更新的問題 相關文章

從資料庫中讀取和儲存圖片請看 寫入和讀取圖片(c# asp。net sqlserver) 相關文章



下面利用ashx檔案可以方便實現從資料庫中讀取圖片並顯示在datagrid當中



//---------------------------------------BindImage.aspx ----------------------------------------

<%@ Page language="c#" Codebehind="BindImage.aspx.cs" AutoEventWireup="false" Inherits="ShowImage.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='<%# "GetImage.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>

//------------------------------------BindImage.aspx.cs ---------------------------------------------

P>using System;
using System.Data;
using System.Drawing;
using System.Web; using System.Data.SqlClient;

namespace ShowImage
{
///
/// BindImg 的摘要說明。
///
public class BindImage: System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid MyDataGrid;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置使用者代碼以初始化頁面
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 Form設計器產生的程式碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web Form設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///
/// 設計器支援所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}


//-----------------------------GetImage.ashx ---------------------------------------

<%@ WebHandler Language="C#" Class="ShowImage.GetImage" CodeBehind="GetImage.ashx.cs" %>


//--------------------------------GetImage.ashx.cs----------------------------------

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace ShowImage
{
///
/// GetImg 的摘要說明。
///
public class GetImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = (string)context.Request["id"];
if(id!=null)
{
MemoryStream stream = new MemoryStream();
SqlConnection conn = new SqlConnection(@"Server=;database=;uid=;Pwd=");
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



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。