请教如何将文件存储到数据库中?

nanjibingfeng 2009-12-13 08:40:48
想将word文档存储到access数据库中,该怎么实现呢?
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayonglong 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 raindargon 的回复:]
你骗人
[/Quote]
你很都~
RainDargon 2010-08-10
  • 打赏
  • 举报
回复
你骗人
woshifou 2009-12-13
  • 打赏
  • 举报
回复
学习。
happychou 2009-12-13
  • 打赏
  • 举报
回复
将文件保存到数据库中,实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在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=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
SqlParameter spFile=new SqlParameter("@file",SqlDbType.Image);
spFile.Value=bytes;
cm.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();
cm.Connection=cn;
cm.CommandType=CommandType.Text;
if(cn.State==0) cn.Open();
cm.CommandText="insert into "+tableName+"("+fieldName+") values(@file)";
OleDbParameter spFile=new OleDbParameter("@file",OleDbType.Binary);
spFile.Value=bytes;
cm.Parameters.Add(spFile);
cm.ExecuteNonQuery()

代码中的fileName是文件的完整名称,tableName是要操作的表名称,fieldName是要保存文件的字段名称

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lemonyue1984/archive/2008/12/11/3497792.aspx
long502481209 2009-12-13
  • 打赏
  • 举报
回复
不太懂,但是顶贴
wuyq11 2009-12-13
  • 打赏
  • 举报
回复
使用备注字段
insert插入
  • 打赏
  • 举报
回复
Access有个OLE功能能保存图片和各种MS办公文件
百度一下,这样的问题也很多

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧