
只要支持二进制数据类型的应该都可以,像Access, SQL Server,等等吧,很多,常见的数据库差不多都可以 但是保存二进制并不是每个数据库都直接支持的,一般都需要通过编程接口比如说,你不写程序,单靠Microsoft Access 2003这个软件自身是很难做到的, 但Access的数据库确实可以通过编程来保存二进制
如果是不支持二进制的,将要保存的文件进行Base64编码,编码后就是纯文本了,可以直接保存进任何数据库,只不过编解码过程也需要编程实现
using System;
using SystemCollectionsGeneric;
using SystemText;
using SystemData;
using SystemDataSqlClient;
using SystemIO;
namespace ConsoleApplication2
{
class Program
{
//把文件写入数据库
public void add(string pathName)
{
FileStream fs = new FileStream(pathName, FileModeOpen, FileAccessRead);
byte[] buffByte = new byte[fsLength];
fsRead(buffByte, 0, (int)fsLength);
fsClose();
fs = null;
SqlConnection conn = new SqlConnection(@"data source=test;uid=sa;pwd=test;database=test");
string sqlstr = @"Insert into table1(doc) values(@img)";
SqlCommand cmd = new SqlCommand();
cmdCommandType = CommandTypeText;
cmdCommandText = sqlstr;
cmdConnection = conn;
cmdParametersAdd("@img", SystemDataSqlDbTypeImage);
cmdParameters[0]Value = buffByte;
connOpen();
cmdExecuteNonQuery();
connClose();
buffByte = null;
}
//从数据库读出文件
public void save(string fileName)
{
SqlConnection conn = new SqlConnection(@"data source=test;uid=sa;pwd=test;database=test");
connOpen();
SqlCommand cmd = new SqlCommand("select top 1 doc from table1", conn);
SqlDataReader reader = cmdExecuteReader();
byte[] buffByte = null;
if (readerRead())
{
buffByte = (byte[])reader[0];
}
readerClose();
connClose();
FileStream fs;
FileInfo fi = new FileInfo(fileName);
fs = fiOpenWrite();
fsWrite(buffByte, 0, buffByteLength);
fsClose();
}
static void Main(string[] args)
{
Program p = new Program();
padd(@"C:\testdoc");
psave(@"C:\test1doc");
}
}
}
PageOffice可以把WORD里的内容保存到数据库里,方法是:
集成PageOffice就可轻松实现这个功能。你既可以通过PageOffice获取word、excel文档里的指定内容,也可以把数据库字段内容输出到word、excel文档指定的位置处,并且接口很简单,源代码可以再官网下载。
以上就是关于那种数据库可以直接将一个(比如word)文档存入数据库;而不是将WORD内容保存为通用型数据全部的内容,包括:那种数据库可以直接将一个(比如word)文档存入数据库;而不是将WORD内容保存为通用型数据、将word文档保存到数据库中、PageOffice能把WORD里的内容保存到数据库里吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)