http://dotnet.aspx.cc/ShowDetail.aspx?id=ECD9AE16-8FF0-4A1C-9B9F-5E8B641CB1B1
请问你这文章里面 数据库里面PersonImage保存的是二进制类型吧
我按你的文章 调试了一下  图片不能显示 ,源码附上,望各位帮我看看,感激不尽DataGridShowImage.aspx<%@ Page language="c#" debug="true" CodeFile="DataGridShowImage.aspx.cs" AutoEventWireup="false"  Inherits="PIC" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
  <title>从数据库中取得照片并显示在DataGrid中</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body >
<form id="DataGridShowImage" method="post" runat="server">
  <h3 align="center">从数据库中取得照片并显示在DataGrid中</h3>
  <asp:DataGrid ID="DG_Persons" AutoGenerateColumns="False" Width="99%" HeaderStyle-BackColor="#ff0000"
   HeaderStyle-Font-Bold="True" HeaderStyle-ForeColor="#ffffff" ItemStyle-BackColor="Beige"
    BorderColor="#000000" Runat="server" HeaderStyle-HorizontalAlign="Center">
  <Columns>
    <asp:TemplateColumn HeaderText="姓名">
      <ItemTemplate>
        <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonName") %>' ID="Label1"/>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="电子邮件">
      <ItemTemplate>
        <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonEmail") %>' ID="Label2"/>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="性别">
      <ItemTemplate>
        <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonSex") %>' ID="Label3"/>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="出生日期">
      <ItemTemplate>
        <asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PersonPOB") %>' ID="Label4"/>
      </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="照片">
      <ItemTemplate>
        <asp:Image Runat=server ID="Image1"
         ImageUrl='<%# FormatURL(DataBinder.Eval(Container.DataItem, "PersonID")) %>' />
      </ItemTemplate>
    </asp:TemplateColumn>
  </Columns>
  </asp:DataGrid>
</form>
</body>
</HTML>DataGridShowImage.aspx.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;    /// <summary>
    /// DataGridShowImage 的摘要说明。
    /// </summary>
    public partial class PIC : System.Web.UI.Page
    {
                private void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            if (!this.IsPostBack)
            {
                BindGrid();
            }        }
        private void BindGrid()
        {
            string strCnn = "Data Source=.;Initial Catalog=hbs;User Id=sa;Password=123;";
            SqlConnection myConnection = new SqlConnection(strCnn);
            SqlCommand myCommand = new SqlCommand("SELECT * FROM hbs.Person", myConnection);
            myCommand.CommandType = CommandType.Text;
            try
            {
                myConnection.Open();
                DG_Persons.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                DG_Persons.DataBind();
            }
            catch (SqlException SQLexc)
            {
                Response.Write("提取数据时出现错误:" + SQLexc.ToString());
            }
        }
        protected string FormatURL(object strArgument)
        {
            return "ReadImage.aspx?id=" + strArgument.ToString();
        }        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    }
ReadImage.aspx.cs

解决方案 »

  1.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Data.SqlClient;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
        /// <summary>
        /// ReadImage 的摘要说明。
        /// </summary>
        public partial class PIC : System.Web.UI.Page
        {
            private void Page_Load(object sender, System.EventArgs e)
            {
                // 在此处放置用户代码以初始化页面
                string strImageID = Request.QueryString["id"];
                SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=hbs;User Id=sa;Password=;");
                SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from hbs.Person Where PersonID="
                 + strImageID, myConnection);            try
                {
                    myConnection.Open();
                    SqlDataReader myDataReader;
                    myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                    if (myDataReader.Read())
                    {
                        Response.Clear();                    Response.ContentType = myDataReader["PersonImageType"].ToString();
                        Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
                    }
                    myConnection.Close();
                }
                catch (SqlException SQLexc)
                {
                }
                Response.End();
            }
            #region Web Form Designer generated code
            override protected void OnInit(EventArgs e)
            {
                //
                // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
                //
                InitializeComponent();
                base.OnInit(e);
            }        /// <summary>
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            /// 此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.Load += new System.EventHandler(this.Page_Load);
            }
            #endregion
        }
      

  2.   


    http://singlepine.cnblogs.com/articles/288027.html