如何将Word文档存入数据库中???

如何将Word文档存入数据库中???,第1张

可以通过流将word转化为二进制数据,然后存入,选择使用一种动态语言即可轻松完成.

但是,由于此类文件较大,数据读取和写入都将非常缓慢,所以不提倡这样.

建议使用图片和文档的路径保存在数据库中.

将文件保存到数据库中,实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在SQL Server中该字段的数据类型是Image,在Access中该字段的数据类型是OLE对象。//保存文件到SQL Server数据库中FileInfo fi=new FileInfo(fileName)FileStream fs=fi.OpenRead()byte[] bytes=new byte[fs.Length]fs.Read(bytes,0,Convert.ToInt32(fs.Length))SqlCommand cm=new SqlCommand()cm.Connection=cncm.CommandType=CommandType.Textif(cn.State==0) cn.Open()cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)"SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image)spFile.Value=bytescm.Parameters.Add(spFile)cm.ExecuteNonQuery()//保存文件到Access数据库中FileInfo fi=new FileInfo(fileName)FileStream fs=fi.OpenRead()byte[] bytes=new byte[fs.Length]fs.Read(bytes,0,Convert.ToInt32(fs.Length))OleDbCommand cm=new OleDbCommand()

using System

using System.Collections.Generic

using System.Text

using System.Data

using System.Data.SqlClient

using System.IO

namespace ConsoleApplication2

{

class Program

{

//把文件写入数据库

public void add(string pathName)

{

FileStream fs = new FileStream(pathName, FileMode.Open, FileAccess.Read)

byte[] buffByte = new byte[fs.Length]

fs.Read(buffByte, 0, (int)fs.Length)

fs.Close()

fs = null

SqlConnection conn = new SqlConnection(@"data source=testuid=sapwd=testdatabase=test")

string sqlstr = @"Insert into table1(doc) values(@img)"

SqlCommand cmd = new SqlCommand()

cmd.CommandType = CommandType.Text

cmd.CommandText = sqlstr

cmd.Connection = conn

cmd.Parameters.Add("@img", System.Data.SqlDbType.Image)

cmd.Parameters[0].Value = buffByte

conn.Open()

cmd.ExecuteNonQuery()

conn.Close()

buffByte = null

}

//从数据库读出文件

public void save(string fileName)

{

SqlConnection conn = new SqlConnection(@"data source=testuid=sapwd=testdatabase=test")

conn.Open()

SqlCommand cmd = new SqlCommand("select top 1 doc from table1", conn)

SqlDataReader reader = cmd.ExecuteReader()

byte[] buffByte = null

if (reader.Read())

{

buffByte = (byte[])reader[0]

}

reader.Close()

conn.Close()

FileStream fs

FileInfo fi = new FileInfo(fileName)

fs = fi.OpenWrite()

fs.Write(buffByte, 0, buffByte.Length)

fs.Close()

}

static void Main(string[] args)

{

Program p = new Program()

p.add(@"C:\test.doc")

p.save(@"C:\test1.doc")

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6777149.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存