科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

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

作者:highill 来源:赛迪网技术社区 2007年11月28日

关键字: 图片 Server SQL 存取

  • 评论
  • 分享微博
  • 分享邮件
ASP.NET如何存取 SQLServer数据库图片 @G4-5 T>ah  
C5~?w=%oc  
:VyoXE{j  
|]Ye(  
SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。 3zN/]|Wt  
   +HOFb9o8b  
  1、建立一个表: \{ye bo+  
  在SQL SERVER中建立这样结构的一个表: 3 ~Opg't  
Xj9uY9QtK  
列名                       类型                     目的 fVi!jAjXg  
ID                         Integer                   主键ID @T#&\9  
IMGTITLE                 Varchar(50)             图片的标题 -RU<kpThx  
IMGTYPE                   Varchar(50)             图片类型 tZx.%pt8  
ASP.NET要以辨认的类型     IMGDATA Image         用于存储二进制数据 Org.4z5U  
C^<ziL  
awG| 2\  
^e-M7uns  
IMGTYPE Varchar(50) 7 R5Eu>.  
   图片类型. ASP.NET要以辨认的类型 IMGDATA Image 用于存储二进制数据 )8Uu_m  
G*O2W1H,  
vwVJ>'=  
  2、存储图片到SQL SERVER数据库中 f,rOAbx  
  为了能存储到表中,你首先要上传它们到你的WEB 服务器上,你可以开发一个web form,它用来将客户端中TextBox web control中的图片入到你的WEB服务器上来。将你的 encType 属性设置为:myltipart/formdata. -&eCRC5W*:  
   AL%3bgR  
  Stream imgdatastream = File1.PostedFile.InputStream; q:iU3k&.  
  int imgdatalen = File1.PostedFile.ContentLength; Hgg8$CjB  
  string imgtype = File1.PostedFile.ContentType; kRp7' 5}  
  string imgtitle = TextBox1.Text; h =udX8B{  
  byte[] imgdata = new byte[imgdatalen]; fCCF@+(;  
  int n = imgdatastream.Read(imgdata,0,imgdatalen); F7kf>S>'[  
  string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"]; 3.?b~G"|^  
   gbA`?ug$o  
  SqlConnection connection = new SqlConnection(connstr); rMz:M`$L|  
   mj3FEJbBz  
  SqlCommand command = new SqlCommand $\{G*_S  
         ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) &xRbqVml  
         VALUES ( @imgtitle, @imgtype,@imgdata )", connection ); HDrM~qc  
   -0vV[QRzx  
  SqlParameter paramTitle = new SqlParameter "U NVg~2  
         ("@imgtitle", SqlDbType.VarChar,50 ); 9/' h1o$  
   #AS`O|(g  
  paramTitle.Value = imgtitle; %mYscpt:d  
  command.Parameters.Add( paramTitle); .YQTyjDjKe  
   \LO e 0U^  
  SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image ); < 9Ye }Q  
  paramData.Value = imgdata; @BP4vJ*qZ  
  command.Parameters.Add( paramData ); ,9$ @+h;  
   6>{Hqgfyz,  
  SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 ); [6@P5f E]p  
  paramType.Value = imgtype; o%CmR+  
  command.Parameters.Add( paramType ); gV J+C1 ]  
   n\~(*t|b  
  connection.Open(); PBhMl9jA  
  int numRowsAffected = command.ExecuteNonQuery(); RFRbmHOJ  
  connection.Close(); e6s6bw  
   Tw0AW-7Rp  
  3、从数据库中恢复读取 [7'$p!!lBt  
   X VDI3C=  
  现在让我们来从SQL Server中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。 sF<U;Z  
   ?sHhX>  
  private void Page_Load(object sender, System.EventArgs e) }qnrR{.Q  
  { CI\g[ /^  
   string imgid =Request.QueryString["imgid"]; {pGci|& VT  
   string connstr=((NameValueCollection) y{d ? y{  
   Context.GetConfig("appSettings"))["connstr"]; 2WGk]~M;  
   string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid; Mfoj yK  
   SqlConnection connection = new SqlConnection(connstr); L@5%ma=v)  
   SqlCommand command = new SqlCommand(sql, connection); -V cB-  
   connection.Open(); 9^"u}Aq  
   SqlDataReader dr = command.ExecuteReader(); Jlz9;ry!7  
   if(dr.Read()) Sy+K:yn?.  
   { Q6iljv  
  Response.ContentType = dr["imgtype"].ToString(); <m%rH `$Ax  
  Response.BinaryWrite( (byte[]) dr["imgdata"] ); u.%#ZHP-  
   } $7dDK@R  
   connection.Close(); J:!e=oFc  
  } {k1)e|9+  
    Z,vz_Mn  
  要注意的是Response.BinaryWrite 而不是Response.Write. OwCLd$e}   查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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