首页  ·  知识 ·  云计算
如何显示数据库中Image类型的图片
佚名  http://www.cnblogs.com/goody9807/  综合  编辑:dezai  图片来源:网络
.数据库表结构 1if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Person]') and OBJECTPROPERTY(id, N'IsUserTable'

.数据库表结构

 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 (1, 1) NOT NULL ,
 7    [PersonImage] [image] NULL ,
 8    [PersonImageType] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
 9) ON [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\

本文作者:佚名 来源:http://www.cnblogs.com/goody9807/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读