• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.Net在SqlServer中的图片存取

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在使用asp.net将图片上传并存入SqlServer中,然后从SqlServer中读取并显示出来 
一,上传并存入sqlserver 
 数据库结构 
  
create table test 
  { 
     id 
identity(1,1), 
     FImage 
image 
  } 
  相关的存储过程 
  
Create proc UpdateImage 
  ( 
     
@UpdateImage Image 
  ) 
  
As 
  
Insert Into test(FImage) values(@UpdateImage
  
GO 

在upphoto.aspx文件中添加如下: 
<input id="UpPhoto" name="UpPhoto" runat="server" type="file"> 
<asp:Button id="btnAdd" name="btnAdd" runat="server" Text="上传"></asp:Button> 

然后在后置代码文件upphoto.aspx.cs添加btnadd按钮的单击事件处理代码: 
private void btnAdd_Click(object sender, System.EventArgs e) 

        
//获得图象并把图象转换为byte[] 
        HttpPostedFile upPhoto
=UpPhoto.PostedFile; 
        
int upPhotoLength=upPhoto.ContentLength; 
        byte
[] PhotoArray=new Byte[upPhotoLength]
        Stream PhotoStream
=upPhoto.InputStream; 
        PhotoStream.
Read(PhotoArray,0,upPhotoLength); 

        
//连接数据库 
        SqlConnection conn
=new SqlConnection(); 
        conn.ConnectionString
="Data Source=localhost;Database=test;User Id=sa;Pwd=sa"; 

        SqlCommand cmd
=new SqlCommand("UpdateImage",conn); 
        cmd.CommandType
=CommandType.StoredProcedure; 

        cmd.Parameters.
Add("@UpdateImage",SqlDbType.Image); 
        cmd.Parameters
["@UpdateImage"].Value=PhotoArray; 

        
//如果你希望不使用存储过程来添加图片把上面四句代码改为: 
        
//string strSql="Insert into test(FImage) values(@FImage)"; 
        
//SqlCommand cmd=new SqlCommand(strSql,conn); 
        
//cmd.Parameters.Add("@FImage",SqlDbType.Image); 
        
//cmd.Parameters["@FImage"].Value=PhotoArray; 

 conn.
open(); 
 cmd.ExecuteNonQuery(); 
 conn.
Close(); 


二,从sqlserver中读取并显示出来 
在需要显示图片的地方添加如下代码: 
<asp:image id="imgPhoto" runat="server" ImageUrl="ShowPhoto.aspx"></asp:image> 

showphoto.aspx主体代码: 
private void Page_Load(object sender, System.EventArgs e) 

     
if(!Page.IsPostBack) 
     { 
                SqlConnection conn
=new SqlConnection() 
                conn.ConnectionString
="Data Source=localhost;Database=test;User Id=sa;Pwd=sa"; 
                
                string strSql
="select * from test where id=2";//这里假设获取id为2的图片 
                SqlCommand cmd
=new SqlCommand() 
                reader.
Read(); 
                Response.ContentType
="application/octet-stream"; 
                Response.BinaryWrite((Byte
[])reader["FImage"]); 
                Response.
End(); 
                reader.
Close(); 
     } 



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap