【发布时间】:2012-09-11 16:07:40
【问题描述】:
我有一个 SQL Server 2008-R2 数据库,其中有一个存储不同类型文件(Word Docs、PDF、TIF 等)的表,我可以使用以下方法从数据库中成功检索这些文件:
私有 void GetFilesFromDatabase() { 尝试 { const string connStr = @"数据源=localhost\SQLInstance;初始目录=MyData;集成安全=True;"; //初始化SQL Server连接。 SqlConnection CN = new SqlConnection(connStr);
//Initialize SQL adapter.
SqlDataAdapter ADAP = new SqlDataAdapter("Select ole_id, ole_object From OLE Where ole_id = 21601", CN);
//Initialize Dataset.
DataSet DS = new DataSet();
//Fill dataset with FilesStore table.
ADAP.Fill(DS, "FilesStore");
//Get File data from dataset row.
byte[] FileData = (byte[])DS.Tables["FilesStore"].Rows[0]["ole_object"];
string FileName = @"C:\Temp\Text.doc";
//Write file data to selected file.
using (FileStream fs = new FileStream(FileName, FileMode.Create))
{
fs.Write(FileData, 0, FileData.Length);
fs.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
根据该特定行中包含的其他信息,我正在检索的这个文件是一个 Word Doc 文件。当我在将文件检索到磁盘后尝试打开文件时,所有数据似乎都是乱码,无法读取。现在我相信这些文件是在保存到数据库之前被压缩的,但我不知道如何解压缩它们以便可以查看它们,关于如何实现这一点的任何想法?我的最终目标是将这些图像移动到另一个数据库中。
【问题讨论】:
标签: c# sql-server-2008 blob compression