科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET如何存取 SQLServer数据库图片(一)

ASP.NET如何存取 SQLServer数据库图片(一)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。

作者:中国IT实验室 来源:中国IT实验室 2007年8月31日

关键字: 图片 数据库 SQLServer ASP.NET

  • 评论
  • 分享微博
  • 分享邮件
SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。
  
  1、建立一个表:
  在SQL SERVER中建立这样结构的一个表:

 列名  类型  目的
 ID  Integer  主键ID
 IMGTITLE  Varchar(50)  图片的标题
 IMGTYPE  Varchar(50)  图片类型
 ASP.NET要以辨认的类型 IMGDATA  Image  用于存储二进制数据

    
     
    IMGTYPE Varchar(50)
   图片类型. ASP.NET要以辨认的类型 IMGDATA Image 用于存储二进制数据


  2、存储图片到SQL SERVER数据库中
  为了能存储到表中,你首先要上传它们到你的WEB 服务器上,你可以开发一个web form,它用来将客户端中TextBox web control中的图片入到你的WEB服务器上来。将你的 encType 属性设置为:myltipart/formdata.
  
  Stream imgdatastream = File1.PostedFile.InputStream;
  int imgdatalen = File1.PostedFile.ContentLength;
  string imgtype = File1.PostedFile.ContentType;
  string imgtitle = TextBox1.Text;
  byte[] imgdata = new byte[imgdatalen];
  int n = imgdatastream.Read(imgdata,0,imgdatalen);
  string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"];
  
  SqlConnection connection = new SqlConnection(connstr);
  
  SqlCommand command = new SqlCommand
         ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata)
         VALUES ( @imgtitle, @imgtype,@imgdata )", connection );
  
  SqlParameter paramTitle = new SqlParameter
         ("@imgtitle", SqlDbType.VarChar,50 );
  
  paramTitle.Value = imgtitle;
  command.Parameters.Add( paramTitle);
  
  SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );
  paramData.Value = imgdata;
  command.Parameters.Add( paramData );
  
  SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 );
  paramType.Value = imgtype;
  command.Parameters.Add( paramType );
  
  connection.Open();
  int numRowsAffected = command.ExecuteNonQuery();
  connection.Close();
  
  3、从数据库中恢复读取
  
  现在让我们来从SQL Server中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。
  
  private void Page_Load(object sender, System.EventArgs e)
  {
   string imgid =Request.QueryString["imgid"];
   string connstr=((NameValueCollection)
   Context.GetConfig("appSettings"))["connstr"];
   string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid;
   SqlConnection connection = new SqlConnection(connstr);
   SqlCommand command = new SqlCommand(sql, connection);
   connection.Open();
   SqlDataReader dr = command.ExecuteReader();
   if(dr.Read())
   {
  Response.ContentType = dr["imgtype"].ToString();
  Response.BinaryWrite( (byte[]) dr["imgdata"] );
   }
   connection.Close();
  }
  
  要注意的是Response.BinaryWrite 而不是Response.Write.

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章