在DataGrid中显示数据库中的图片

  现在用一个DATAGRID控件,将图片显示在DATAGRID中的IMAGE控件里.   里面用了两个图片控件,一个是服务器端的ImageButton,另一个是客户端的Image控件。   
  前台代码:  
  <%@   Page   language="c#"   Codebehind="DataGridImage.aspx.cs"   AutoEventWireup="false"   Inherits="NetTest.DataGridImage"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
    <HEAD>  
      <title>DataGridImage</title>  
      <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
      <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   MS_POSITIONING="GridLayout">  
      <form   id="Form1"   method="post"   runat="server">  
        <table   align="center"   border="1"   width="60%">  
          <TBODY>  
            <tr>  
              <td   align="center"><font   style="FONT-WEIGHT:   bold;   FONT-SIZE:   11pt">DataGrid中显示数据库中的图片</font></td>  
            </tr>  
            <tr>  
              <td>  
                <asp:DataGrid   id="DataGrid1"   runat="server"   AutoGenerateColumns="False"   width="100%">  
                  <Columns>  
                    <asp:TemplateColumn>  
                      <ItemTemplate>  
                        <FONT   face="宋体">  
                          <TABLE   id="Table1"   cellSpacing="1"   cellPadding="1"   width="100%"   border="0">  
                            <TR>  
                              <TD   colspan="2"><FONT   style="FONT-SIZE:   10pt">图片名称:</FONT>   <FONT   style="FONT-SIZE:   10pt">  
                                  <asp:Label   id="lbImageName"   runat="server"   Text='<%#   DataBinder.Eval(Container,"DataItem.ImageName")%>'>  
                                  </asp:Label></FONT></TD>  
                            </TR>  
                            <TR>  
                              <TD><FONT   style="FONT-SIZE:   10pt">图片:</FONT>  
                                <asp:Image   id=Imagebutton1   Width=100   Height=100   runat="server"   ImageUrl='<%#   "ReadImage.aspx?ImageID="+DataBinder.Eval(Container,"DataItem.ID")%>'>  
                                </asp:Image>  
                              </TD>  
                              <td>  
                                <IMG   width=100   height=100   alt=""   src='<%#   "ReadImage.aspx?ImageID="+DataBinder.Eval(Container,"DataItem.ID")%>'">  
                              </td>  
                            </TR>  
                          </TABLE>  
                        </FONT>  
                      </ItemTemplate>  
                    </asp:TemplateColumn>  
                  </Columns>  
                </asp:DataGrid></td>  
            </tr>  
          </TBODY>  
        </table>  
      </form>  
    </body>  
  </HTML>  
   
     
     
  后台代码:   using   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;  
   
  namespace   NetTest  
  {  
    ///   <summary>  
    ///   DataGridImage   的摘要说明。  
    ///   </summary>  
    public   class   DataGridImage   :   System.Web.UI.Page  
    {  
      protected   System.Web.UI.WebControls.DataGrid   DataGrid1;  
      private   string   str="server=localhost;uid=sa;pwd=;database=northwind";  
      private   void   Page_Load(object   sender,   System.EventArgs   e)  
      {  
        if(!IsPostBack)  
        {  
          FillData();  
        }  
      }  
   
      #region   Web   窗体设计器生成的代码  
      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  
   
      private   void   FillData()//绑定DATAGRID  
      {  
        SqlConnection   cn=new   SqlConnection(str);  
        SqlCommand   cmd=new   SqlCommand();  
        cmd.CommandText="SELECT   *   from   UpImage";  
        cmd.Connection=cn;  
        cn.Open();  
        SqlDataAdapter   da=new   SqlDataAdapter();  
        da.SelectCommand=cmd;  
        DataSet   ds=new   DataSet();  
        da.Fill(ds,"Images");  
        DataGrid1.DataSource=ds.Tables["Images"];  
        DataGrid1.DataBind();  
        cn.Close();  
      }  
    }  
  }  
   
     
  ReadImage.aspx(根据传过来的图片的编号,取得图片。只要建一个页面就可以了,不用放置任何控件)  
  后台代码:   using   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;  
  namespace   NetTest  
  {  
    ///   <summary>  
    ///   ReadImage   的摘要说明。  
    ///   </summary>  
    public   class   ReadImage   :   System.Web.UI.Page  
    {  
     
      private   void   Page_Load(object   sender,   System.EventArgs   e)  
      {  
        string   conn="server=localhost;uid=sa;pwd=;database=northwind";  
        SqlConnection   cn=new   SqlConnection(conn);  
        SqlCommand   cmd=new   SqlCommand();  
        cmd.CommandText="select   Image   from   UpImage   where   ID='"+this.Request["ImageID"]+"'";  
        cmd.Connection=cn;  
        cn.Open();  
        this.Response.ContentType="image/*";  
        SqlDataReader   dr=cmd.ExecuteReader();  
        while(dr.Read())  
        {  
          this.Response.BinaryWrite((byte[])dr["Image"]);  
        }  
        cn.Close();  
      }  
   
      #region   Web   窗体设计器生成的代码  
      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  
   
    }  
  }   
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值