如何在Sql Compact DB中同步合并订阅(在移动设备模拟器上)

时间:2010-06-16 15:07:13

标签: mobile sql-server-ce replication

使用SQL ManagementStudio 2008我创建了SQL 3.5 Compact DB(TestCompact.sdf),并创建了对现有Publication的订阅。使用SQL Management Studio它正在运行。我已将TestCompact.sdf传输到Windows Mobile 5模拟器设备,而使用QueryAnalyzer for Mobile,我可以查询TestCompact.sdf中的现有表。我不知道如何在该移动设备上启动复制同步。我是否需要编写一些C#代码,或者它可以做得更简单吗?

编辑:(在回答我的问题后添加) 也许这对C#代码为我做的工作有用: (使用SQL Management Studio - 我的Compact DB现有订阅的属性)我读了replObj属性的值是什么)

private void btnSync_Click(object sender, EventArgs e)
    {
        SqlCeConnection sqlCeConn = null;
        SqlCeReplication replObj = new SqlCeReplication();
        string connString = @"data source=\My Documents\TestReplicationCompactDB.sdf;Password=bero";
        replObj.InternetUrl = @"http://192.168.99.99/VirtualDirectoryForCompactDBReplication/sqlcesa35.dll";;
        replObj.PublisherDatabase =  "TestReplicationDB";
        replObj.PublisherSecurityMode = SecurityType.NTAuthentication;;
        replObj.Publisher = @"DBTESTSRV\SQL2008";
        replObj.Publication = "TestReplication2";
        replObj.Subscriber = "TestReplication";
        replObj.SubscriberConnectionString = @"data source=\My Documents\TestReplicationCompactDB.sdf;Password=bero";
        replObj.InternetLogin = @"ares\intor";
        replObj.InternetPassword = "intor";
        try
        {
            sqlCeConn = new SqlCeConnection(connString);
            sqlCeConn.Open();
            replObj.Synchronize();
            sqlCeConn.Close();
        }
        catch (Exception ex) { 
            MessageBox.Show(ex.Message);
            if (sqlCeConn != null && sqlCeConn.State == ConnectionState.Open)
                sqlCeConn.Close();
            return;
        }
        string countPublisherChanges = replObj.PublisherChanges.ToString();
        string countSubScriberChanges = replObj.SubscriberChanges.ToString();
        MessageBox.Show(String.Format("Finished with {0} subscriber changes and with {1} publisher changes", countSubScriberChanges, countPublisherChanges));
    } 

1 个答案:

答案 0 :(得分:0)

你需要编写“一些”C#代码,在SSMS向导的末尾你会得到一些示例代码。