word文档直接存入数据库并读取
在VB.NET中如何实现将现有的word文档直接存入数据库,并从数据库中读取并用word文档打开,谢谢各位高手
[解决办法]
http://dev.yesky.com/msdn/263/3034763.shtml
[解决办法]
存入数据库:
引用
using System.IO;
using System.Data.SqlClient;
主要代码
string strFilePath=this.fileInfo.Value;//获取文件路径,fileInfo为控件名
//判断文件路径是否有值
if (strFilePath.Trim().Length> 0)
{
string fileName=this.fileInfo.PostedFile.FileName;//获取文件在计算机上的完整限定名,即绝对路径
int iPos=fileName.LastIndexOf(@ "\ ");//获取最后一个 "\ "的位置
if(iPos> 0)
{
fileName=fileName.Substring(iPos+1);//剔除路径,获取文件名
}
string strSaveFilePath=this.Request.PhysicalApplicationPath+@ "fileUpload\ "+fileName;//获取文件在服务器的保存位置
//保存文件时,如果文件重复,则删除原文件
if(File.Exists(strSaveFilePath))
{
File.Delete(strSaveFilePath);
}
//文件分类 fileClass
string strFileClass= "技术文档 ";//临时语句,应该传值
//单位名称
string strUnitName= "XX公司 ";//临时语句,应该传值
//文件名称 fileName
string strFileName=fileName;
//文件类型 fileType
string strFileType=fileName.Substring(fileName.LastIndexOf( ". ")+1);//获取扩展名
//文件内容 fileContent
FileStream fs = new FileStream(strSaveFilePath, FileMode.OpenOrCreate, FileAccess.Read);//生成文件流
byte[] strFileContent= new byte[fs.Length];//定义byte字符串fileContent,以便写入文件内容
fs.Read(strFileContent, 0, System.Convert.ToInt32(fs.Length));//从文件流中读取数据写入byte字符串fileContent
fs.Close();//关闭文件,并释放与文件流有关的资源
//数据存储
SqlConnection conn=new SqlConnection();
conn.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings[ "SQLCONNECTIONSTRING "].ToString();
SqlCommand comm=new SqlCommand();
comm.Connection=conn;
conn.Open();
comm.CommandText= "INSERT INTO [file] (fileClass, unitName, fileName, fileType, fileContent) VALUES (@fileClass, @unitName, @fileName, @fileType, @fileContent) ";
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter( "@fileClass ", System.Data.SqlClient.SqlType.VarChar, 50, "fileClass "));
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter( "@unitName ", System.Data.SqlClient.SqlType.VarChar, 50, "unitName "));
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter( "@fileName ", System.Data.SqlClient.SqlType.VarChar, 50, "fileName "));
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter( "@fileType ", System.Data.SqlClient.SqlType.VarChar, 50, "fileType "));
comm.Parameters.Add(new System.Data.SqlClient.SqlParameter( "@fileContent ", System.Data.SqlClient.SqlType.Blob, 2147483647, "fileContent "));
comm.Parameters[ "@fileClass "].Value=strFileClass;
comm.Parameters[ "@unitName "].Value=strUnitName;
comm.Parameters[ "@fileName "].Value=strFileName;
comm.Parameters[ "@fileType "].Value=strFileType;
comm.Parameters[ "@fileContent "].Value=strFileContent;
comm.ExecuteNonQuery();
conn.Close();
}
数据库中fileContent列数据类型为Image
从数据库读取文件,我一般生成文件后再做链接,不知楼主需要怎样做