l 数据缓存
通过vs2005进行数据缓存十分简单,首先是通过Office模板建立一个Word Document 的项目,然后通过BindingSource进行数据源的连接,然后通过拖放实现数据源与文档的绑定,最后设置自动生成的强类型DataSet 的CacheinDocument属性为true 并将其设置为Public,这样就能在文档中实现数据缓存。
l 数据处理
n 数据岛
u 在文档中保存程序数据,是数据缓存的一种方式。
u 使用数据岛有以下优点:
l 客户端离线后仍能使用数据
l 可被服务进程访问
l 存储配置信息
n ServerDocument
u ServerDocument提供了对Office 文档的处理,可以处理其中的数据,而无须打开Office应用程序。
u ServerDocument类介绍:
l 使用Microsoft.VisualStudio.Tools.Applications.runtime命名空间。
l 有以下方法:
n AddCustomization 静态方法,用于添加自定义程序集信息。
n RemoveCustomization 删除自定义程序集信息。
n Save 保存对文档的所有修改。
n Close 关闭文档。
l 有以下属性:
n AppManifest包括文档的程序集信息。
n CachedData 文档中缓存的数据信息。
n Document获取加载文档的字节数组。
u 示例:(需要引用命名空间Microsoft.VisualStudio.Tools.Applications.runtime)
l 显示自定义程序集的路径:拖放TextBox与Button控件,通过点击Button在TextBox中显示自定义程序集的路径。以下为Button事件处理的代码。
ServerDocument sd = new ServerDocument(filepath);
textBox1.Text = sd.AppManifest.Dependency.AssemblyPath;
l 添加或删除自定义程序集代码:
ServerDocument.RemoveCustomization(filepath);//删除
ServerDocument.AddCustomization(filepath);//添加
l 访问文档中数据:
ServerDocument sd = new ServerDocument(filepath);
string xmlData=sd.CachedData.HostItems[0].CachedData[0].Xml;
StringReader sr = new StringReader(xmlData);
_123DataSet.联系方式.ReadXml(sr); //这里的DataSet必须是强类型的,要与源文档中的数据格式一样。
_123DataSet.联系方式.AcceptChanges();
sd.Close();
l 修改文档中数据:
2 // 从数据库中取得新信息
3 StringWriter sw=new StringWriter();
4 _123DataSet.联系方式.WriteXml(sw);
5 string filepath = @"D:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WordDocument3\WordDocument3\bin\Debug\WordDocument3.doc";
6
7 ServerDocument sd = new ServerDocument(filepath);
8 //将新信息写入文档缓存
9 sd.CachedData.HostItems[0].CachedData[0].Xml = sw.ToString();
10 sd.Save();//保存
11 sd.Close();
12 _123DataSet.AcceptChanges();