本主题将介绍如何通过使用 SqlCeReplication 类重新初始化对 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 的订阅。有关使用 SqlServerCe 命名空间的详细信息,请参阅 SqlServerCe 命名空间参考文档。
重新初始化订阅
初始化 SqlCeReplication 对象。
SqlCeReplication repl = new SqlCeReplication();
设置连接属性。这些属性指定所订阅发布的名称和位置、本地 SQL Server Compact Edition 数据库的名称和位置以及 SQL Server Compact Edition 服务器代理的位置。
repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa30.dll"; repl.InternetLogin = "MyInternetLogin"; repl.InternetPassword = "<password>"; repl.Publisher = "MyPublisher"; repl.PublisherDatabase = "MyPublisherDatabase"; repl.PublisherLogin = "MyPublisherLogin"; repl.PublisherPassword = "<password>"; repl.Publication = "MyPublication"; repl.Subscriber = "MySubscriber"; repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";
调用 ReinitializeSubscription 方法来标记要重新初始化的订阅。如果将 true 传递给 ReinitializeSubscription 方法,在重新初始化之前订阅服务器上的更改将上载到发布服务器上。如果传递的是 false,在重新初始化过程中将放弃订阅服务器上的所有更改。
repl.ReinitializeSubscription(true);
若要重新填充订阅,您必须在调用 ReinitializeSubscription 方法后调用 Synchronize 方法。
repl.Synchronize();
示例
下面的示例显示如何重新初始化 SQL Server Compact Edition 订阅。在本例中,订阅服务器上的所有更改先上载到发布服务器,然后重新初始化订阅,再同步数据。
SqlCeReplication repl = null;
try
{
// Create SqlCeReplication instance
//
repl = new SqlCeReplication();
repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa30.dll";
repl.InternetLogin = "MyInternetLogin";
repl.InternetPassword = "<password>";
repl.Publisher = "MyPublisher";
repl.PublisherDatabase = "MyPublisherDatabase";
repl.PublisherLogin = "MyPublisherLogin";
repl.PublisherPassword = "<password>";
repl.Publication = "MyPublication";
repl.Subscriber = "MySubscriber";
repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";
// Mark the subscription for reinitialization with Upload first
repl.ReinitializeSubscription(true);
// Synchronize to SQL Server to populate the Subscription
repl.Synchronize();
}
catch (SqlCeException)
{
// Handle errors here
}
finally
{
// Dispose the repl object
repl.Dispose();
}
Dim repl As SqlCeReplication = Nothing
Try
' Create SqlCeReplication instance
repl = New SqlCeReplication()
repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa30.dll"
repl.InternetLogin = "MyInternetLogin"
repl.InternetPassword = "<password>"
repl.Publisher = "MyPublisher"
repl.PublisherDatabase = "MyPublisherDatabase"
repl.PublisherLogin = "MyPublisherLogin"
repl.PublisherPassword = "<password>"
repl.Publication = "MyPublication"
repl.Subscriber = "MySubscriber"
repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf"
' Mark the subscription for reinitialization with Upload first
repl.ReinitializeSubscription(True)
' Synchronize to SQL Server to populate the Subscription
repl.Synchronize()
Catch
' Handle errors here
Finally
' Dispose the repl object
repl.Dispose()
End Try
请参阅
概念
使用合并复制
订阅发布 (SQL Server Compact Edition)
重新初始化订阅 (SQL Server Compact Edition)