Asp.Net在SqlServer中的图片存取

None.gif 在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来 
None.gif一,上传并存入sqlserver 
None.gif 数据库结构 
None.gif  
create   table  test 
None.gif  { 
None.gif     id 
identity ( 1 , 1 ), 
None.gif     FImage 
image  
None.gif  } 
None.gif  相关的存储过程 
None.gif  
Create   proc  UpdateImage 
None.gif  ( 
None.gif     
@UpdateImage   Image  
None.gif  ) 
None.gif  
As  
None.gif  
Insert   Into  test(FImage)  values ( @UpdateImage
None.gif  
GO  
None.gif
None.gif在upphoto.aspx文件中添加如下: 
None.gif
< input id = "UpPhoto" name = "UpPhoto" runat = "server" type = " file " >  
None.gif
< asp:Button id = "btnAdd" name = "btnAdd" runat = "server"  Text = "上传" ></ asp:Button >  
None.gif
None.gif然后在后置代码文件upphoto.aspx.cs添加btnadd按钮的单击事件处理代码: 
None.gifprivate void btnAdd_Click(object sender, System.EventArgs e) 
None.gif
None.gif        
// 获得图象并把图象转换为byte []  
None.gif        HttpPostedFile upPhoto
= UpPhoto.PostedFile; 
None.gif        
int  upPhotoLength = upPhoto.ContentLength; 
None.gif        byte
[]  PhotoArray = new Byte [ upPhotoLength ]
None.gif        Stream PhotoStream
= upPhoto.InputStream; 
None.gif        PhotoStream.
Read (PhotoArray, 0 ,upPhotoLength); 
None.gif
None.gif        
// 连接数据库 
None.gif        SqlConnection conn
= new SqlConnection(); 
None.gif        conn.ConnectionString
= "Data Source = localhost; Database = test; User  Id = sa;Pwd = sa"; 
None.gif
None.gif        SqlCommand cmd
= new SqlCommand("UpdateImage",conn); 
None.gif        cmd.CommandType
= CommandType.StoredProcedure; 
None.gif
None.gif        cmd.Parameters.
Add (" @UpdateImage ",SqlDbType. Image ); 
None.gif        cmd.Parameters
[ "@UpdateImage" ] .Value = PhotoArray; 
None.gif
None.gif        
// 如果你希望不使用存储过程来添加图片把上面四句代码改为: 
None.gif        
// string strSql = " Insert   into  test(FImage)  values ( @FImage )"; 
None.gif        
// SqlCommand cmd = new SqlCommand(strSql,conn); 
None.gif        
// cmd.Parameters. Add (" @FImage ",SqlDbType. Image ); 
None.gif        
// cmd.Parameters [ "@FImage" ] .Value = PhotoArray; 
None.gif
None.gif conn.
open (); 
None.gif cmd.ExecuteNonQuery(); 
None.gif conn.
Close (); 
None.gif
None.gif
None.gif二,从sqlserver中读取并显示出来 
None.gif在需要显示图片的地方添加如下代码: 
None.gif
< asp: image  id = "imgPhoto" runat = "server" ImageUrl = "ShowPhoto.aspx" ></ asp: image >  
None.gif
None.gifshowphoto.aspx主体代码: 
None.gifprivate void Page_Load(object sender, System.EventArgs e) 
None.gif
None.gif     
if (!Page.IsPostBack) 
None.gif     { 
None.gif                SqlConnection conn
= new SqlConnection() 
None.gif                conn.ConnectionString
= "Data Source = localhost; Database = test; User  Id = sa;Pwd = sa"; 
None.gif                
None.gif                string strSql
= " select   *   from  test  where  id = 2 "; // 这里假设获取id为2的图片 
None.gif                SqlCommand cmd
= new SqlCommand() 
None.gif                reader.
Read (); 
None.gif                Response.ContentType
= "application / octet - stream"; 
None.gif                Response.BinaryWrite((Byte
[] )reader [ "FImage" ] ); 
None.gif                Response.
End (); 
None.gif                reader.
Close (); 
None.gif     } 
None.gif
None.gif
None.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值