我有一个 SQL Server 2008-R2 数据库,其中有一个存储不同类型文件(Word Docs、PDF、TIF 等)的表,我可以使用以下方法从数据库中成功检索这些文件:
private void GetFilesFromDatabase() { try { const string connStr = @"Data Source=localhost\SQLInstance;Initial Catalog=MyData;Integrated Security=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 文件。当我在将文件检索到磁盘后尝试打开文件时,所有数据似乎都是乱码并且无法读取。现在我相信这些文件在保存到数据库之前已被压缩,但我不知道如何解压缩它们以便可以查看它们,关于如何实现这一点的任何想法?我的最终目标是将这些图像移动到另一个数据库中。