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         显示自定义程序集的路径:拖放TextBoxButton控件,通过点击ButtonTextBox中显示自定义程序集的路径。以下为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         修改文档中数据:

 1this.联系方式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  圣炎¢天乐  阅读(1813)  评论(4编辑  收藏  举报