zoukankan      html  css  js  c++  java
  • 如何显示数据库中Image类型的图片

    1.数据库表结构

     1if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Person]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
     2drop table [dbo].[Person]
     3GO
     4
     5CREATE TABLE [dbo].[Person] (
     6    [PersonID] [int] IDENTITY (11NOT NULL ,
     7    [PersonImage] [image] NULL ,
     8    [PersonImageType] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
     9ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    10GO
    11
    12

    2.显示图片的代码,把下面的代码随便放到一个aspx页面的pageload事件中

     1    void GetImageSrcFromDB()
     2        {
     3            string strImageID = Request.QueryString["id"];
     4            SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=mxh;User Id=sa;Password=sa;");
     5            SqlCommand myCommand = new SqlCommand("Select PersonImageType, PersonImage from Person Where PersonID=" 
     6                + strImageID, myConnection);
     7
     8            try
     9            {
    10                myConnection.Open();
    11                SqlDataReader myDataReader;
    12                myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
    13                if(myDataReader.Read())
    14                {
    15                    Response.Clear();
    16
    17                    //Response.ContentType = myDataReader["PersonImageType"].ToString();
    18                    Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
    19                }

    20                myConnection.Close();
    21            }

    22            catch (SqlException SQLexc)
    23            {
    24                Response.Write(SQLexc.ToString());
    25            }

    26            //Response.End();
    27        }

    3.构造数据,通过上传的方式把图片存入数据库,下面的代码放入一个上传按钮的单击事件中,页面上在加一个上传控件

     1            //获得图象并把图象转换为byte[] 
     2            HttpPostedFile upPhoto=UpPhoto.PostedFile; 
     3            int upPhotoLength=upPhoto.ContentLength; 
     4            byte[] PhotoArray=new Byte[upPhotoLength]; 
     5            Stream PhotoStream=upPhoto.InputStream; 
     6            PhotoStream.Read(PhotoArray,0,upPhotoLength); 
     7        
     8            //连接数据库 
     9            SqlConnection conn=new SqlConnection(); 
    10            conn.ConnectionString="Data Source=localhost;Database=mxh;User Id=sa;Pwd=sa"
    11            
    12            string strSql="Insert into Person(PersonImage,PersonImageType) values(@FImage,'jpeg')"
    13            SqlCommand cmd=new SqlCommand(strSql,conn); 
    14            cmd.CommandType=CommandType.Text ; 
    15            
    16            //如果你希望不使用存储过程来添加图片把上面四句代码改为: 
    17            
    18            //SqlCommand cmd=new SqlCommand(strSql,conn); 
    19            cmd.Parameters.Add("@FImage",SqlDbType.Image); 
    20            cmd.Parameters["@FImage"].Value=PhotoArray; 
    21            conn.Open(); 
    22            cmd.ExecuteNonQuery(); 
    23            conn.Close(); 





    4.显示图片的代码,建立一个新的aspx页面,然后显示图片

    1<asp:Image id="Image1" runat="server" ImageUrl="ReadImage.aspx?id=1"></asp:Image>
  • 相关阅读:
    WPF:简洁为美
    WPF工作笔记:本地化支持、主进程通知、两种最常用异步编程方式
    WPF:将HTML RGB颜色值转化为Color对象的两种方式
    WPF:定制Checkbox样式,让“正确”绿得好看,让“错误”红的显眼
    Is C# a clone of a Microsoft replacement for Java?
    原创的基于HTML/CSS/JavaScript的层级目录树
    Android笔记——BaseAdapter的使用
    C#开源持久层框架
    经典.net面试题目
    C#:实体框架EF(entity framework)
  • 原文地址:https://www.cnblogs.com/goody9807/p/627996.html
Copyright © 2011-2022 走看看