请问有什么做remoting 操作数据库吗,能否提供共享简单源码,小弟想学学,谢谢

解决方案 »

  1.   

    那些都是控制台下代码,我想要的windows应用程序的代码.
      

  2.   

    刚刚才写的一个!服务器和客户端需要引用“类文件” 和System.Runtime.Remoting;类文件
    --------------
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    namespace db
    {
        public class DBAccess:MarshalByRefObject
        {
            private SqlConnection con;
            private SqlDataAdapter da;
            private DataSet ds;
            public DBAccess()
            {
                Console.Write("构造方法");
            }        public DataSet GetDateSet(string strSql,string tabName)
            {
                con = new SqlConnection("server=(local);" + "integrated security=SSPI;" + "database=henry");
                da = new SqlDataAdapter(strSql, con);
                SqlCommandBuilder builder = new SqlCommandBuilder(da);
                ds = new DataSet();
                da.Fill(ds,tabName);
                return ds;
            }        public override object InitializeLifetimeService()
            {
                return null;
            }
        }
    }
    --------------------------------------服务器文件
    --------------------------------------
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime;
    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Tcp;
    namespace db
    {
        class Program
        {
            static void Main(string[] args)
            {
                TcpServerChannel channel = new TcpServerChannel(8888);
                ChannelServices.RegisterChannel(channel, false);
                RemotingConfiguration.RegisterWellKnownServiceType(typeof(DBAccess), "Hi", WellKnownObjectMode.Singleton);
                Console.WriteLine("回车退出");
                Console.ReadLine();
            }
        }
    }
    ------------------------------------------------------客户端代码  form1
    ---------------------------------------------------
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime;
    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Tcp;
    namespace db
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private DBAccess obj;
            private void Form1_Load(object sender, EventArgs e)
            {
                TcpClientChannel channle = new TcpClientChannel();
                obj = (DBAccess)Activator.GetObject(typeof(DBAccess), "tcp://localhost:8888/Hi");
                dataGrid1.DataSource = obj.GetDateSet("select * from login", "login");
                dataGrid1.DataMember = "login";
                
            }
        }
    }
    ------------------------------------------
      

  3.   

    hanhenry() ( ) 信誉:100 
    楼主有能帮我server由控制台程序改为windows应用程序吗.
      

  4.   

    TcpServerChannel channel = new TcpServerChannel(8888);
                ChannelServices.RegisterChannel(channel, false);
                RemotingConfiguration.RegisterWellKnownServiceType(typeof(DBAccess), "Hi", WellKnownObjectMode.Singleton);
                Console.WriteLine("回车退出");
                Console.ReadLine();
    放到load里面
      

  5.   

    TcpServerChannel channel = new TcpServerChannel(8888);
                ChannelServices.RegisterChannel(channel, false);
                RemotingConfiguration.RegisterWellKnownServiceType(typeof(DBAccess), "Hi", WellKnownObjectMode.Singleton);
    最好判断一下TcpServerChannel channel是不是等于null