小弟在编写应用 Remoting的程序时,无法实现象Web Service 应用程序那样,数据库(SQL SERVER)的连接与客户端无关,客户端不用理会服务器使用何种数据库,连接字符串如何。客户端无需安装数据库连接组建。我已经把所有的数据库事务交给服务器端来执行了,客户端仅仅是调用服务器端远程类的方法而已,但是还是要安装SQL SERVER 连接组建。我不明白 好像是数据库的连接还是从本地(客户端)发起的一样。原本以为这样客户端的部署可以简单一点。不需要安装连接组建了。请高手解决以下 我是初学者

解决方案 »

  1.   

    不需要,你是通过Remoting去Invoke一个你自己的Sql Commponent出来,你可以包装一下你的这个Commponent,通过它去执行和返回你所想要的Data
      

  2.   

    我就是这么干的呀,还是不行~~
    //Remoting Server 端------------
    SqlDataAccess sqlDataAccess; //SqlDataAccess 为一个操作SQL SERVER 的自定义类
    //实例化函数
    public RemoteObject()
    {
     SqlDataAccess sqlDataAccess=new SqlDataAccess();
     //sqlDataAccess.ConnectionString=连接字符串;
    }//RemoteObject 类 成员函数
    public DataTable GetTable(string sql);
    {
     return sqlDataAccess.GetTable(sql);
    }//客户端 --------------
    //.NET Remoting配置...
    //远程对象
    RemoteObject  remoteObject=new RemoteObject();
    DataTable dataTable=remoteObject.GetTable("SELECT * FROM TableName");
    ------------就是这样啊,为何客户端还要 安装 SQLSERVER 连接组建~~
      

  3.   

     改正:
    public   RemoteObject() 

      sqlDataAccess=new   SqlDataAccess(); 
      //sqlDataAccess.ConnectionString=连接字符串; 

      

  4.   

    不需要安装其他任何组件,只需要.NET框架就可以了,Remoting 就是来实现分布式系统的
    客户端只需要实例化远程对象,传递客户端UI收集的资料,通过你的Remoting采用的传输协议
    将数据传输到服务器端以后所有的操作都是在服务器端,比如事务控制 逻辑处理 数据访问
    最后如果有返回值的话在返回到客户端,便于UI呈现等
      

  5.   

    还是分个层吧!
    方案一:客户端
    表现层(在客户端展示)
    Remote接口(客户端接口)服务器端
    领域逻辑(一、服务器对外接口,二、业务逻辑)
    数据逻辑(专门的数据相关处理)
    数据层(微软的数据工厂)方案二:
    客户端
    表现层(在客户端展示)
    领域逻辑(业务逻辑)
    Remote接口(客户端接口)服务器端
    Remote接口(服务器对外的接口)
    数据逻辑(专门的数据相关处理,在这里只能出现纯字符串的SQL语句,或存储过程名称)
    数据层(微软的数据工厂,实际的数据库连接)
      

  6.   

    注意:
    在Remote中,不要出现,如下语句
    ds = Database.ExecuteDataset( SysAdminBase.CarConfigString , CommandType.Text , strSql );等只能是一个简单的数据返回
    而执行的SQL语句放到数据逻辑层里。