private const string INTERNETURL = @"http://192.168.1.107/testse/sscesa20.dll";
private const string PUBLISHER = @"192.168.1.107";
private const string PublisherAddress = @"192.168.1.107,1433";
private const string PUBLISHERDATABASE = @"Itime";
private const SecurityType PUBLISHERSECURITYMODE = SecurityType.DBAuthentication;
private const string PUBLICATION = "Itime_Repl";
private string SUBSCRIBER = "Deboy" ;
private const string LOCALDATABASE = @"\My Documents\Itime.sdf";
private const string LOCALDB = @"data source="+LOCALDATABASE;
private const string LOCALCONNECTIONSTRING = @"Provider=Microsoft.SQLServer.OLEDB.CE.2.0;"+LOCALDB;
private const string LOGIN = "sa";
private const string LOGINPWD = "sa";
public static SqlCeConnection ceConn = new SqlCeConnection(LOCALDB);
//数据同步方法
private void ReplicateData()
{
SqlCeReplication replicator = new SqlCeReplication();
replicator.InternetUrl = INTERNETURL;
replicator.Publisher = "ws-victorl-13";//PUBLISHER;
replicator.PublisherDatabase = PUBLISHERDATABASE;
replicator.PublisherSecurityMode = PUBLISHERSECURITYMODE;
replicator.Publication = PUBLICATION;
replicator.PublisherNetwork = System.Data.SqlServerCe.NetworkType.TcpIpSockets;
replicator.PublisherAddress = PublisherAddress;
replicator.PublisherLogin = LOGIN;
replicator.PublisherPassword = LOGINPWD;
//replicator.ExchangeType = ExchangeType.BiDirectional;
replicator.Subscriber = SUBSCRIBER ;
replicator.SubscriberConnectionString = LOCALCONNECTIONSTRING;
replicator.Synchronize();
}
//拉方法
private void PullData()
{
try
{
ceConn = new SqlCeConnection(LOCALDB);
SqlCeRemoteDataAccess srda = new SqlCeRemoteDataAccess();
srda.InternetUrl = INTERNETURL;
srda.InternetLogin = LOGIN;
srda.InternetPassword = LOGINPWD;
srda.LocalConnectionString = LOCALDB;
string remoteDB = @"provider=sqloledb;Data Source=192.168.1.107;Initial Catalog=Itime;User ID=sa;Password='sa'";
srda.Pull("Contacts","SELECT * FROM contacts ",
remoteDB,RdaTrackOption.TrackingOnWithIndexes);
srda.Pull("ContactsGroup","SELECT * FROM ContactsGroup ",
remoteDB,RdaTrackOption.TrackingOnWithIndexes);
srda.Pull("ContactsRelated","SELECT * FROM ContactsRelated ",
remoteDB,RdaTrackOption.TrackingOnWithIndexes);
MessageBox.Show("数据下载成功");
srda.Dispose();
}
catch(SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}
//推方法
private void PushData()
{
try
{
ceConn = new SqlCeConnection(LOCALDB);
SqlCeRemoteDataAccess srda = new SqlCeRemoteDataAccess();
srda.InternetUrl = INTERNETURL;
srda.InternetLogin = LOGIN;
srda.InternetPassword = LOGINPWD;
srda.LocalConnectionString = LOCALDB;
string remoteDB = @"provider=sqloledb;Data Source=192.168.1.107;Initial Catalog=Test;User ID=sa;Password='sa'";
srda.Push("Contacts",remoteDB,System.Data.SqlServerCe.RdaBatchOption.BatchingOn);
srda.Push("ContactsGroup",remoteDB,System.Data.SqlServerCe.RdaBatchOption.BatchingOn);
srda.Push("ContactsRelated",remoteDB,System.Data.SqlServerCe.RdaBatchOption.BatchingOn);
MessageBox.Show("数据上传成功");
srda.Dispose();
}
catch(SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}