C# code access remote SQL server by remoting(TCP)

//Server side code

using System;
using System.Data;
using System.Data.SqlClient;

namespace RemotingSamples
{
public class Hello : System.MarshalByRefObject
{
public Hello()
{
Console.WriteLine("Hello actived");
}

~Hello()
{
Console.WriteLine("Hello destroyed");
}

public DataSet GetData()
{
string conn = "Initial Catalog=Northwind;Data Source=localhost;Integrated Security=SSPI";
//new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["strconn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from Products",conn);
DataSet ds=new DataSet();
da.Fill(ds);
return ds;
}
}
}

//Client


using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Data;

namespace RemotingSamples
{
public class Client
{
[STAThread]
public static void Main(string [] args)
{
//TcpChannel chan = new TcpChannel();
ChannelServices.RegisterChannel(new TcpClientChannel());
Hello obj = (Hello)Activator.GetObject(typeof(Hello),"tcp://localhost:8085/Hi");
DataTable dt=obj.GetData().Tables[0];
foreach(DataRow dr in dt.Rows)
{
Console.WriteLine(dr["ProductID"]+" "+dr["ProductName"]);
}
//if (obj == null) System.Console.WriteLine("Could not find server");
//else Console.WriteLine(obj.Greeting("kk"));
//else Console.WriteLine(obj.HelloMethod("John"));

}
}
}
\\interface:

using System;

namespace RemotingSamples {
public interface IHello {
String HelloMethod(String name);
}

public class HelloServer : MarshalByRefObject, IHello {
public HelloServer() {
Console.WriteLine("HelloServer actived");
}

public String HelloMethod(String name) {
Console.WriteLine("Hello.HelloMethod : {0}", name);
return "hello," + name;
}
}
}

No comments:

Post a Comment