辛苦积攒200分向大家请教:使用remote连接上远程对象,在随后的引用中发生了错误.....(ok后,立马结帐)
[目的]:
在数据库服务器运行一个服务,它负责建立数据库连接,客户端通过管道获得数据库连接对象.这时候客户端操作可以使用这个OleDbConnection对象进行各种操作.好像这个对象是在客户端生成的一样.
[简单代码]:
ChannelServices.RegisterChannel(new TcpClientChannel());
RemoteDB.Operator obj = (RemoteDB.Operator)Activator.GetObject(typeof(RemoteDB.Operator),"tcp://192.168.1.120:8087/Hi");
if(obj==null)
{
MessageBox.Show("没有连接上服务器");
return;
}
System.Data.OleDb.OleDbDataAdapter ada = new OleDbDataAdapter("select * from employee", obj.GetDBConn());//这里发生错误,提示信息:
其他信息: 由于安全限制,无法访问类型 System.Runtime.Remoting.ObjRef。
ada.Fill(dt);
this.dataGrid1.DataSource = dt;
[已经实现]:
在函数处传入sql语句,可以正确返回执行的结果;
比如公共装配件有函数public DataTable ExcuteSQL(string SQLStr);
[问题]:
1.
public DataTable ExcuteSQL(OleDbCommand DBComm) 执行这个函数的时候还是出现同样错误,好像OleDbCommand对象就不能穿入.请教象这样的对象如何传到数据库服务器对象中?而 string对象就可以传入.
2.
public OleDbConnection GetDBConn() 返回的OleDbConnection是个代理对象,无法使用它做更多操作.比如上面的System.Data.OleDb.OleDbDataAdapter ada = new OleDbDataAdapter("select * from employee", obj.GetDBConn()); 请教是否可以获得这个对象?如果可以如何获得?
3Q