Asp.Net在SqlServer中的图片存取技术

sp.net在sqlserver中的图片存取技术 
在使用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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值