Sql Server中存储、读写Word文件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Sql Server中存储、读写Word文件,需要将指定表字段添加为Image类型 示例表结构为: 1 CREATE?TABLE?CONTRACTS ( 2 ????ID?VARCHAR?(50), 3 ????CONTRACT_FILE IMAGE 4 ); CONTRACT_FILE字段就是要存储Word文件的字段,在存储前,有一个小插曲,你需要将Word文件转换为byte数组,可参考以下代码实现: 1 //将文件转换为byte数组 2 public?static?byte[] File2Bytes(string?fileName) 3 { 4 ?????FileStream fs =?new?FileStream(fileName,FileMode.OpenOrCreate, FileAccess.Read); 5 ?????byte[] fileDatas =?new?byte[fs.Length]; 6 ?????fs.Read(fileDatas, 0, System.Convert.ToInt32(fs.Length)); 7 ?????fs.Close(); 8 ?????return?fileDatas; 9 } 接下来就是将转换后的byte[]数组存储到SqlServer的对应字段中,具体实现代码可看如下代码段: 01 //将文件存储到数据库 02 public?bool?UpdateContractFile(string?id,?byte[] fileBytes) 03 { 04 ????string?sql =?UPDATE CONTRACTS SET CONTRACT_FILE=@CONTRACT_FILE WHERE ID=@ID; 05 ????using?(SqlConnection conn =?new?SqlConnection(this.m_DataAccess.ConnectString)) 06 ????{ 07 ????????conn.Open(); 08 ????????using?(SqlCommand cmd =?new?SqlCommand()) 09 ????????{ 10 ????????????cmd.Connection = conn; 11 ????????????cmd.CommandText = sql; 12 ????????????cmd.Parameters.Clear(); 13 ????????????cmd.Parameters.Add(new?SqlParameter(@CONTRACT_FILE, SqlDbType.Image)); 14 ????????????cmd.Parameters[@CONTRACT_FILE].Value = fileBytes; 15 ????????????cmd.Parameters.Add(new?SqlParameter(@ID, SqlDbType.VarChar)); 16 ????????????cmd.Parameters[@ID].Value = id; 17 ????????????return?cmd.ExecuteNonQuery() 0 ??true?:?false; 18 ????????} 19 ????} 20 } 同时,因之前转换了数据类型,所以从数据库中读取Word文件时,要先将Image类型的字段转换为bytes[],代码如下: 01 //通过ID获取文件byte数组 02 public?byte[] GetContractFile(string?id) 03 { 04 ????string?sql =?SELECT CONTRACT_FILE FROM CONTRACTS WHERE ID={0}; 05 ????sql =?string.Format(sql, id); 06 ????object?contractFile; 07 ????contractFile =?this.m_DataAccess.ExecuteScalar(sql); 08 ????if?(contractFile ==?null) 09 ????{ 10 ????????return?new?byte[0]; 11 ????} 12 ????else 13 ????{ 14 ????????return?(byte[])contractFile; 15 ????} 16 } 在获取到文件的byte[]后,将该文件再通过文件流存储为Word文件,以下代码可实现此功能: 01 //将byte[]数组存储为Word文件 02 byte[] fileBytes =?this.m_Contract

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档