对于我需要用于上述任务的技术种类,我感到非常不知所措。我已经搜索了堆栈溢出股票,但无法确定执行此操作的可靠步骤列表。
我想概述一下将word文档插入数据库时需要使用的步骤/工具。
我想到了:
是否可以使用XMLSerializer对象读取单词ml?我如何将其插入数据库?
编辑: 我实际上需要对存储的数据执行操作,比如使用xpath查找节点,因此我需要将其存储为xml ...
答案 0 :(得分:2)
您应该使用FileStream或普通的BLOB存储。 FileStream确实需要更多的初始工作,我在升级某些已安装的数据库时遇到了问题。根据您重新安装服务器以使其工作的能力/意愿,您应该在走得太远之前做一个概念验证。从技术上讲,我从未遇到过使用BLOB的问题
根据您的使用模式,已经做了一些关于哪个应该是首选的研究。 IE浏览器。如果您的文件平均大于1Mb并且您需要快速读取访问权限,那么最好使用FileStream。
我自己很少看到性能差异,但从设计角度来看,我确实更喜欢FileStream。
看看:
答案 1 :(得分:1)
大多数情况下,如果要将文件“按原样”存储在数据库中,则将其存储为“BLOB”或“Binary Large OBject”。
这是一篇关于如何向MSSQL读取和写入BLOB数据的文章: http://www.codecapers.com/post/manipulating-blob-data-in-mssql-with-c.aspx
如果您的文档的某些部分也需要从数据库中搜索,您可以将BLOB创建为列,并且仍然具有这些项目的其他列或表关系(如类别,关键字,创建日期,所有者等) )
答案 2 :(得分:0)
您可以查找创建byte []流以及在Google Microsoft上查找.Interop在线MDSN上有大量示例
如果您想要序列化,请查看BinaryStreaming CodeProject.com以及Stackoverflow将提供大量来自过去用户/问题和解决方案的样本。
答案 3 :(得分:0)
实际上,word格式(2010+)是一个包含大量XML的zip文件夹:)。我建议使用varbinary或text列。
答案 4 :(得分:0)
我认为你不能使用XML来做到这一点;我相信Word文档中包含二进制内容。我会尝试FileStream并将其作为varbinary(max)
存储在数据库中。这当然是处理它的最通用和最灵活的方法,如果您选择稍后扩展功能,您将能够重用您为任何其他文件类型编写的代码。