zoukankan      html  css  js  c++  java
  • Asp.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(); 
         } 


  • 相关阅读:
    Java——异步调用
    GTK3-demo 代码调用
    ef core code first 生成的数据库表去复数的方法
    nuxt全局挂载导航路由守卫
    vue导入,导出,列表展示excel数据
    JS之blob对象下载文件,解决word可能打开是乱码,xlsx文件打不开,图片显示格式不支持等问题
    程序猿的十一条浮躁表现
    RSA加密解密及加签验签
    冒泡排序
    Failed to parse source for import analysis because the content contains invalid JS syntax
  • 原文地址:https://www.cnblogs.com/RuiLei/p/568741.html
Copyright © 2011-2022 走看看