上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
SQL语言入门教程( 11 )
作者:未知 申领版权
2010年12月12日 共有 1899 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:
    

在SQL Server中保存和输出图片

有时候我们需要保存一些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文件。

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

A0、A1、A2、A3图纸折叠方法
dos命令的其它用处
系统外部命令
DOS命令全集:(网络收集3 )
DOS命令全集:(网络收集2 )
DOS命令全集:(网络收集 )
SQL优化34条
MS SQL Server查询优化方法
学习存储过程
事务全攻略

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》