如何显示数据库中Image类型的图片
1.数据库表结构
2.显示图片的代码,把下面的代码随便放到一个aspx页面的pageload事件中
3.构造数据,通过上传的方式把图片存入数据库,下面的代码放入一个上传按钮的单击事件中,页面上在加一个上传控件
4.显示图片的代码,建立一个新的aspx页面,然后显示图片
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
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 }
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();
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>