如何使用C#将图象文件存入SQL Server ?

原创 2007年10月03日 18:27:00
有时候我们需要保存一些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文件。    
 

C#实现在Sql Server中存储和读取Word文件

要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (...
  • SJF0115
  • SJF0115
  • 2013年07月25日 10:10
  • 5859

c#编程实现word 文档如何导入SQL Server数据库表中

操作WORD配置说明 引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB) 1.运行Dcomcnfg.exe 2.组件服务――计算机――我的电脑――...
  • u010235841
  • u010235841
  • 2013年09月24日 09:12
  • 1200

C#将图片存入SQLServer数据库并读取

C#将图片存入SQLServer数据库并读取  开发工具:Visual Studio.NET 2003,编程语言:C#,数据库:SQLServer2000 ASP.NET项目结构:项目...
  • xingyuan1hao
  • xingyuan1hao
  • 2016年11月23日 20:28
  • 461

C#各种扩展名文件存入sql server数据库及读取到本地文件

主要实现函数
  • u011331383
  • u011331383
  • 2014年07月11日 10:28
  • 2346

将图片数据存入sqlserver数据库

关于图片的存储我们一般的做法是将图片存在硬盘上,路径存入数据库      sqlServer数据库以image格式存储图片,sqlServer数据库无法直接将image格式的字段转为string类型或...
  • h1534589653
  • h1534589653
  • 2017年03月12日 14:03
  • 909

SQL Server 将查询结果存入新表,或临时表中

SQL Server 将查询结果存入新表,或临时表中select  * into temp  from [表0测土配方施肥土壤植株样品测试方法统计表Full] where 年度=2008...
  • firehou
  • firehou
  • 2010年04月27日 10:31
  • 2453

C#Enum类型向sqlserver插入问题

最近做一个项目,数据库中有两个表分别为保存任务的Tasks和保存数据的Codes,两个表分别有两个字段标识任务和数据的进行(使用)状态,数据库中这两个字段都为vachar C#中我用enum来保存它...
  • hunter_yang_Tuziki
  • hunter_yang_Tuziki
  • 2015年11月03日 22:21
  • 472

【SQL】Sql server 数据库中插入韩文 乱码问题

在 Microsoft SQL Server 中, 以下数据类型支持 Unicode 数据:nchar, nvarchar, ntext 使用SQL语句操作的时候应该注意以下问题: 原查询语句 Se...
  • atorb
  • atorb
  • 2016年08月18日 14:15
  • 254

SQLServer数据库的图片存储(Java实现)并显示到jsp上

第一种情况:java读取写入图片。 本想找点代码测试一下在SQL Server中存取图片的方法, 结果狂搜之后才发现,不是基于在jsp中的应用,就是本身过程太复杂,今天,突然看到一篇java实现数据...
  • liguiping2000
  • liguiping2000
  • 2012年05月24日 13:10
  • 5431

C#导入Xml文件到Sqlserver

要导入的Xml文件:    32  新增执法机构页面  qqqqqq  组织机构  2009-07-31T00:00:00+08:00  王永刚    33  执法人员资格页面  大幅度放到大幅度放到...
  • wangygang
  • wangygang
  • 2009年08月06日 19:50
  • 3667
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用C#将图象文件存入SQL Server ?
举报原因:
原因补充:

(最多只允许输入30个字)