さまざまな種類のファイル (Word Docs、PDF、TIF など) を格納するテーブルを持つ SQL Server 2008-R2 データベースがあり、次の方法を使用してデータベースからこれらのファイルを正常に取得できます。
private void GetFilesFromDatabase() { try { const string connStr = @"Data Source=localhost\SQLInstance;Initial Catalog=MyData;Integrated Security=True;"; //SQL Server 接続を初期化します。SqlConnection CN = 新しい 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 ファイルです。ファイルをディスクに取得した後にファイルを開こうとすると、すべてのデータが意味不明なように見え、読み取ることができません。これらのファイルはデータベースに保存される前に圧縮されていたと思いますが、表示できるように解凍する方法がわかりません。これを達成する方法について何か考えはありますか? 私の最終的な目標は、これらの画像を別のデータベースに移動することです。