一直在致力于为广安计算机爱好者营造这样一个学习环境:"轻松、高效、实际、体贴"。虽然前路漫漫,但我们在探索着、慢慢成熟着…… 网站首页┊QQ号发布┊软件下载┊游戏外挂┊黑客技术┊广安博客┊交流论坛
设为首页
加入收藏
投稿信箱
网站首页 ┊操作系统 ┊系统集成 ┊程序开发 ┊网页制作 ┊图形图象 ┊安全技术 ┊黑客技术 ┊硬件 DIY ┊业内新闻 ┊广安博客 ┊交流社区
当前位置:广安计算机信息中心 -=> 程序开发 -=> 数据库 -=> 正文  
热门文章
 普通文章 数据库系统防黑客入侵.. 
 普通文章 AccessDiver中文使用.. 
 普通文章 MySQL数据导入与导出.. 
 普通文章 ACCESS数据库如何防止.. 
 普通文章 屏蔽SQLFindCandy对数.. 
 普通文章 维护Sql Server中表的.. 
 普通文章 一次SQLServer2000安.. 
 普通文章 数据库设计中的14个技.. 
 普通文章 建立Access 数据库的.. 
 普通文章 MicrosoftAccess秘密.. 
相关文章
推荐文章
 ·暂无
在SQL Server中保存和输出图片 【字体:大 中 小】
作者:[Seraphim] 来源:[本站] 浏览:[ ] 评论:[] 
 
有时候我们需要保存一些binary data进数据库。SQL Server提供一个叫做image的特殊数据类型供我们保存binary data。Binary data可以是图片、文档等。在这篇文章中我们将看到如何在SQL Server中保存和输出图片。

  建表

  为了试验这个例子你需要一个含有数据的table(你可以在现在的库中创建它,也可以创建一个新的数据库),下面是它的结构:
Column Name
Datatype
Purpose
ID
Integer
identity column Primary key
IMGTITLE
Varchar(50)
Stores some user friendly title to identity the image
IMGTYPE
Varchar(50)
Stores image content type. This will be same as recognized content types of ASP.NET
IMGDATA
Image
Stores actual image or binary data.
  保存images进SQL Server数据库

  为了保存图片到table你首先得从客户端上传它们到你的web服务器。你可以创建一个web form,用TextBox得到图片的标题,用HTML File Server Control得到图片文件。确信你设定了Form的encType属性为multipart/form-data。

   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();

  从数据库中输出图片

  现在让我们从数据库中取出我们刚刚保存的图片,在这儿,我们将直接将图片输出至浏览器。你也可以将它保存为一个文件或做任何你想做的。

  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();
}

  在上面的代码中我们使用了一个已经打开的数据库,通过datareader选择images。接着用Response.BinaryWrite代替Response.Write来显示image文件。
【 打印 】【 收藏 】【 评论 】
评一评(点击可查看更多评论)
 
广告服务

设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 网站地图