C# 把word转成2进制存储到SQL2000中的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 把word转成2进制存储到SQL2000中的问题相关的知识,希望对你有一定的参考价值。

用FileUpload控件上传一个word文档,把这个文档转成二进制存进SQL2000中,数据库中对应的类型是image。类似于EMAIL中的附件上传,上传后转二进制存到数据库中。对方收到EMAIL,从附件中取的时候,再从SQL2000中读取出WORD文件下载。需求是存成2进制,就别说存路径的方法了。
回复
1楼的:你真是高手,就你知道不合理。
2楼的:我试过,但是图片取的时候C#有IMAGE类型,WORD我存什么类型?
3楼的:我也用过序列化,但是反序列化的时候还是遇到了不知道存什么类型拿出来。

参考技术A 可以呀,直接使用filestream读取字节数组就可以了。
这个和把图片保存到数据库的原理是一模一样的。

==========
问题补充回答:
你把doc文档看作图片保存就可以了。在这儿,关键是保存二进制数据,你不要想的太复杂了。在二进制情况下,是没有任何格式的,所以也不存在图片或者doc了。你把从doc中取到的字节数组直接保存到image字段中即可。
参考技术B 存数据库是最傻的方法............如果客户硬来也没办法,是不是觉得备份方便?呵呵。

楼主参考存图片的一样的方法。例如http://topic.csdn.net/t/20021025/10/1123704.html
在WORD那里其实也可以存IMAGE类型。在SQL SERVER 2000那里二进制共3种类型,其中binary和varbinary都要指定字节数,而IMAGE不需要。顺便说一下,如果有可能的话建议用SQL SERVER 2005,那里改良了TEXT类型和IMAGE类型,用VARCHAR(MAX)和varbinary(MAX)来代替,操作更灵活。

在字段那里再加一个字段定义文件的原始文件名。
取出的时候还是将读出内容转成byte[]就OK了。

参考资料:http://topic.csdn.net/t/20021025/10/1123704.html

参考技术C 数据库数据类型用binary
存的时候转成byte []
读取的时候 (byte [])read.getvalue(列);
参考技术D 这种做法根本不合理 第5个回答  2008-07-04 序列化吧!

以上是关于C# 把word转成2进制存储到SQL2000中的问题的主要内容,如果未能解决你的问题,请参考以下文章

将字符串格式的16进制转成2进制格式的字符串

C#如何把16进制字符串转成值相等的byte数组?

如何使用C#将包含文字、图片和表格的二进制数据写入到word文件中

pdf怎样转成visio

NET问答: 如何将十六进制的 #FFDFD991 转成 C# 中的 Color 类?

十进制转成二进制