To:redforks
具体源程序:
一.远程对象
其中一个方法.调用时出现上述错误提示)dataconn.dll
**********************************************************************
public System.Data.DataTable returnusertable()//此方法未报错
{
System.Data.DataTable usertable=new DataTable();
open();
information="系统正在加载用户信息.........";
sqlda=new SqlDataAdapter("select * from yhb",sqlconn);
sqlda.Fill(usertable);
close();
return usertable;
}
*******************************************************************************
public System.Data.DataTable returnusertable(string sqlstr)//此方法调用时报错
{
System.Data.DataTable usertable=new DataTable();
open();//打开数据库连接
//"select * from yhb"
information="系统正在加载用户信息.........";
sqlda=new SqlDataAdapter(sqlstr,sqlconn);//sqlconn 是SqlConnection一个实例,sqlda是SqlDataAdapter一个实例
sqlda.Fill(usertable);
close();//关闭数据库
return usertable;
}
*****************************************************************************
public void UpdateDataSource(DataTable Changerows)//此方法未报错
{
try
{
open();
this.sqlda.Update(Changerows);
}
catch(System.Exception E)
{
throw new Exception(E.Message);
}
finally
{
close();
}
二.服务器server
主要代码:注册HTTP/TCP通道
if (this.radioButton1.Checked)
{
TcpChannel tcp=new TcpChannel(8085);
Channelse
rvices.RegisterChannel(tcp);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(dataconn.dataClass),"Dataconn",WellKnownObjectMode.SingleCall);
this.statusBarPanel1.Text="系统正在启动"+this.radioButton1.Text;
}
else
{
HttpChannel http=new HttpChannel(8086);
Channelse
rvices.RegisterChannel(http);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(dataconn.dataClass),"Dataconn",WellKnownObjectMode.SingleCall);
this.statusBarPanel1.Text="系统正在启动"+this.radioButton2.Text;
}
三.客户端.Client
主要代码:
注册HTTP通道(TCP通道类似)
public class ClientClass
{
public static dataconn.dataClass dtconn;//声明静态远程对象变量
public ClientClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
HttpChannel httpchan = new HttpChannel();
Channelse
rvices.RegisterChannel(httpchan);
dataconn.dataClass dtconntemp1 = (dataconn.dataClass)Activator.GetObject(typeof(dataconn.dataClass), "http://192.168.0.25:8086/Dataconn");
if (dtconntemp1!=null)
{
dtconn=dtconntemp1;//在构造函数中将激活的远程对象赋给静态远程对象变量.供客户端调用其方法.
return;
}
}
我的问题是:
为什么有时调用有参数的方法就提示错误呢(如上述第二个方法)?为什么有时调用有参数的方法不报错呢(如上述第三个方法)?调用没有参数的方法都不报错.
请教有这方面经验的程序员指点一下.万分谢谢!