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事件处理的代码。
string filepath = @"D:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WordDocument3\WordDocument3\bin\Debug\WordDocument3.doc";
ServerDocument sd = new ServerDocument(filepath);
textBox1.Text = sd.AppManifest.Dependency.AssemblyPath;
l 添加或删除自定义程序集代码:
string filepath = @"D:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WordDocument3\WordDocument3\bin\Debug\WordDocument3.doc";
ServerDocument.RemoveCustomization(filepath);//删除
ServerDocument.AddCustomization(filepath);//添加
l 访问文档中数据:
string filepath = @"D:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WordDocument3\WordDocument3\bin\Debug\WordDocument3.doc";
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 修改文档中数据:
1
this.联系方式TableAdapter.Fill(this._123DataSet.联系方式);
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();
posted on 2005-12-11 16:42
圣炎¢天乐 阅读(1145)
评论(4) 编辑 收藏 网摘