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

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。 

   1、建立一个表: 

   在SQL SERVER中建立这样结构的一个表: 



列名  类型  目的  
ID  Integer  主键ID  
IMGTITLE  Varchar(50)  图片的标题  
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.

鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
ASP.Net中程序构架与程序代码的分离发布时间:2022-07-10
下一篇:
Asp.netMVC3Razor语法小记发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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