Microsoft Word 2013 で行った作業を、ハードディスクではなくデータベースに保存したいと考えています。つまり、ドキュメントに書式設定されたテキスト、画像、およびスタイルが含まれていると仮定すると、ドキュメントをそのまま Microsoft SQL サーバー データベースに保存し、データベースに保存されたとおりに ms word に戻すことができます。
私は必死に助けが必要です、お願いします!!!
以下は、Word文書をSQLデータベースに保存するために使用したコードです。
public void SaveNewDocument()
{
try
{
int len = Application.ActiveDocument.Content.StoryLength;
byte[] docData = new byte[len];
using (MemoryStream ms = new MemoryStream())
{
ms.Read(docData, 0, len);
this.table_2TableAdapter.Insert("FirstFile", docData);
}
}
catch (Exception x)
{
MessageBox.Show(x.Message, "Save", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
データベースにアクセスすると、データがそこにあります。
以下は、データベースから取得するために使用したコードですが、機能していません。
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
this.GetExistingFile();
}
private void GetExistingFile()
{
this.table_2TableAdapter.Fill(this.officeAppDataSet.Table_2);
var query = from f in this.officeAppDataSet.Table_2.AsEnumerable()
where f.Id == 4
select f;
foreach (var mFile in query)
{
string fileName = mFile.FileName;
byte[] fileData = mFile.FileData;
int len = int.MaxValue;
using (MemoryStream ms = new MemoryStream())
{
ms.Write(fileData, 0, len);
}
}
}
エラー メッセージは次のとおりです: ArgumentException was unhandled: オフセットと長さが配列の範囲外であるか、カウントがインデックスからソース コレクションの末尾までの要素数を超えています。