欢迎来到天天文库
浏览记录
ID:30409825
大小:86.33 KB
页数:18页
时间:2018-12-29
《利用c远程存取access数据库存取excel》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、利用C远程存取Access数据库存取EXCEL文利用C#远程存取Access数据库/存取EXCEL文件2010-12-2317:44目前,基于数据库服务器的桌面管理程序和Web程序已经有太多的应用了,尤其是网络的大量普及,孤立地数据库管理系统无法胜任分布式管理应用,但是面对基于Access数据库的现有的桌面应用我们也无法完全的摒弃。我们利用.Net远程处理功能将连接和存取Access的行为封装为一个远程对象,供网络中其它客户端通过调用该远程对象来存取实际的Access数据库。我们以C#2005为开发语言来实现上述功能。一、技术要点我们都知道Windows应用程序在运行时会启动一个
2、进程,其总包括若干线程,不同的进程之间通信是开发分布式应用程序所必需的,传统上,这不仅需要深入了解通信流两端上进程的对象,而且还要深入了解低级别协议的宿主、应用程序编程接口以及配置工具等。总之,它是一项需要大量专业知识和经验的复杂任务。幸好.Net为我们提供了远程处理功能,它所提供的通信方法可以快速而方便地完成上述建立通信的任务。因此,无论是需要快速开发Web应用程序,还是要花费更多时间生成关键的企业范围的应用程序,.NETFramework都会提供支持。通过.NET远程处理,客户端应用程序可以使用同一台计算机或其网络中其他任何可用的计算机上的其他进程中的对象。要使用.NET远程
3、处理创建可以让两个对象跨越应用程序直接通信的应用程序,只需生成以下对象即可:1、可远程处理的对象。2、侦听对该远程对象的请求的应用程序即服务器程序。3、对该远程对象发出请求的客户端应用程序。.Net下不同应用程序中的对象的通信方式有两种:一种是跨应用程序域边界传输对象副本,一种是使用代理交换消息。MarshalByRefObject是通过使用代理交换消息来进行通信的对象的基类。当跨应用程序使用远程对象时,对象的基类必须是从MarshalByRefObject继承。二、程序实现(1)我们先在VS的IDE中创建名为"TestRemoteAccess"的新的解决方案来容纳前述用来实现远
4、程处理的三个项目,首先向解决方案中添加名为"RemoteObject"的类库,然后将默认创建的类名更改为"CRemoteAccess",并且继承于"MarshalByRefObject",代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceRemoteObject{publicclassCRemoteAccess:MarshalByRefObject{}}我们需要在该对象内创建用于连接和存取本地Access数据库的所有函数,供服务端客户端程序同时调用。用于连接和存取Access数据库
5、的方法这里不再详述,参看附件源码。首先所有需要向客户端公开的函数其可见性都必须设为public。变量m_ConnString需要设置为publicstatic,目的是当客户端调用了SetRemoteAccessConnString后将数据库连接字符串保存下来以备在本次连接期间始终能够访问,代码如下:…publicstaticstringm_ConnString;…publicvoidSetRemoteAccessConnString(stringConnstr){m_ConnString=Connstr;}…成功连接了Access数据库后我们需要返回数据集给请求的客户端进行显示和
6、编辑,在远程对象中我们声明了几个相关函数:privatevoidLoadData(stringSqlStr,stringTableName)publicvoidSaveData(DataTableClientDataTable)publicDataTableGetUserTable(stringSqlStr,stringTableName)客户端可以传递SQL查询脚本通过调用GetUserTable来获取相关数据库表的数据,并返回一个DataTable,然后可以将该DataTable附值给DataGridView以便将数据显示出来。GetUserTable通过调用私有的LoadD
7、ata函数来完成对数据的获取。SaveData函数用于将编辑过的数据集保存回本地Access数据库文件,代码如下:…m_connection.Open();m_adapter.Update(ClientDataTable);…(2)远程对象创建完成,我们需要创建用于侦听该远程对象请求的服务端应用程序。在"TestRemoteAccess"解决方案中新建一个Windows窗体项目名为:"TestServer",从工具箱中拖拽下几个组件,界面如下所示:服务器程序TestServer除
此文档下载收益归作者所有