|
利用C#远程存取Access数据库(3) string RemoteURL; Host = txtHost.Text; Port = txtPort.Text; RemoteURL = "tcp://" + Host + ":" + Port + "/RithiaTestAccessServer"; try { TcpChannel chan = new TcpChannel(); ChannelServices.RegisterChannel(chan); remoteObject = (RemoteObject.CRemoteAccess)Activator.GetObject(typeof(RemoteObject.CRemoteAccess), RemoteURL); RemoteDataTable = new DataTable(); button3.Enabled = false; } catch (Exception E) { MessageBox.Show(E.Message.ToString()); } finally { } ……
客户端程序根据服务程序所侦听的信道是TCP还是HTTP来注册相应的信道和端口号,并且组合成远程对象的Url,即Url= 信道://主机名:端口号/对象的Uri,然后创建远程对象的实例,就像使用本地对象一样可以对其进行存取,我们可以调用远程对象的GetUserTable方法获取指定查询脚本的结果集,代码如下:
…… RemoteDataTable = remoteObject.GetUserTable(txtSQL.Text, "Test"); dataGridView1.DataSource = RemoteDataTable; ……
保存结果集时仅需简单调用SaveData方法即可,代码如下:
…… remoteObject.SaveData(RemoteDataTable); ……
三、 结果
该程序成功地在Visual Studio .Net 2005及Windows XP SP2下调试运行通过。
|