将文件保存到数据库中

上传人:文*** 文档编号:62807894 上传时间:2022-03-16 格式:DOCX 页数:4 大小:12.60KB
返回 下载 相关 举报
将文件保存到数据库中_第1页
第1页 / 共4页
将文件保存到数据库中_第2页
第2页 / 共4页
将文件保存到数据库中_第3页
第3页 / 共4页
点击查看更多>>
资源描述
文档供参考,可复制、编制,期待您的好评与关注! 将文件保存到数据库中在编程中我们常常会遇到“将文件保存到数据库中”这样一个问题,虽然这已不是什么高难度的问题,但对于一些刚刚开始编程的朋友来说可能是有一点困难。其实,方法非常的简单,只是可能由于这些朋友刚刚开始编程不久,一时没有找到方法而已。下面介绍一下使用C#来完成此项任务。首先,介绍一下保存文件到数据库中。将文件保存到数据库中,实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在SQL Server中该字段的数据类型是Image,在Access中该字段的数据类型是OLE对象。/保存文件到SQL Server数据库中FileInfo fi=new FileInfo(fileName);FileStream fs=fi.OpenRead();byte bytes=new bytefs.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 bytefs.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是要保存文件的字段名称。两段代码实际上是一样的,只是操作的数据库不同,使用的对象不同而已。接着,在说说将文件从数据库中读取出来,只介绍从SQL Server中读取。SqlDataReader dr=null;SqlConnection objCn=new SqlConnection();objCn.ConnectionString=Data Source=(local);User ID=sa;Password=;Initial Catalog=Test;SqlCommand cm=new SqlCommand();cm.Connection=cn;cm.CommandType=CommandType.Text;cm.CommandText=select +fieldName+ from +tableName+ where ID=1;dr=cm.ExecuteReader();byte File=null; if(dr.Read() File=(byte)dr0;FileStream fs;FileInfo fi=new System.IO.FileInfo(fileName);fs=fi.OpenWrite();fs.Write(File,0,File.Length);fs.Close();上面的代码是将保存在数据库中的文件读取出来并保存文fileName指定的文件中。在使用上面的代码时,别忘了添加System.Data.SqlClient和System.IO引用。2005年11月30日修改:将读文件的下面部分的代码FileStream fs;FileInfo fi=new System.IO.FileInfo(fileName);fs=fi.OpenWrite();fs.Write(File,0,File.Length);fs.Close();修改为FileStream fs=new FileStream(fileName,FileMode.CreateNew);BinaryWriter bw=new BinaryWriter(fs);bw.Write(file,0,file.Length);bw.Close();fs.Close();这样修改后,就可以解决朋友们提出的“如果想从数据库中取出,另存为相应的文件时,用相应的软件不能打开呢?如WORD另存为XXX.DOC ”问题了。2006年11月30日由于ntext数据类型只能存储字符信息,所以能存储的文件也仅仅能是文本文件下面是将文件保存到数据库中: System.IO.StreamReader sr=new System.IO.StreamReader(d:123.txt,System.Text.Encoding.Default); string s=sr.ReadToEnd(); System.Data.SqlClient.SqlConnection objCn=new System.Data.SqlClient.SqlConnection(); objCn.ConnectionString=Data Source=(local);User ID=sa;Password=;Initial Catalog=TEST; string strSQL=insert into T_File values(#txt#,#+s+#); System.Data.SqlClient.SqlCommand objCm=new System.Data.SqlClient.SqlCommand(strSQL,objCn); objCn.Open(); objCm.ExecuteNonQuery();下面是将存储在数据库中的文件信息读取出来并保存为文件: System.Data.SqlClient.SqlConnection objCn=new System.Data.SqlClient.SqlConnection(); objCn.ConnectionString=Data Source=(local);User ID=sa;Password=;Initial Catalog=TEST; string strSQL=select File from T_File where ID=1; System.Data.SqlClient.SqlCommand objCm=new System.Data.SqlClient.SqlCommand(strSQL,objCn); objCn.Open(); string str=objCm.ExecuteScalar().ToString(); System.IO.StreamWriter sw=System.IO.File.CreateText(d:321.txt); sw.Write(str); sw.Close();4 / 4
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!