从Server更新Windows CE设备上的表的最佳方法

时间:2012-09-04 03:08:31

标签: sql-server synchronization windows-ce sql-server-mobile

我需要修改现有的Windows CE应用程序,该应用程序从SQL Compact数据库(sdf)获取数据,以便在SQL Server Express停靠到计算机时使用SQL Server Express中的最新记录更新数据库表(仅1个表)。

我遇到了Microsoft Sync Framework,它似乎能够让我实现我的要求。我尝试了其中一个Walkthrough: Creating an Occasionally Connected Smart Device Application,但无法让应用程序正常工作(我根据指南创建的应用程序以及sample code)。 WCF服务已成功托管,我也可以从浏览器浏览该服务。

我在SynchronizeMenuItem的click事件的下一行遇到错误。

Dim syncStats As Global.Microsoft.Synchronization.Data.SyncStatistics = syncAgent.Synchronize()

以下是输出窗口的跟踪:

  

'MobileSyncServices.exe'(已管理):已加载'System.SR.dll'   System.dll中发生了'System.Net.WebException'类型的第一次机会异常   System.ServiceModel.dll中发生了'System.ServiceModel.EndpointNotFoundException'类型的第一次机会异常
  System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常   System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常   线程0x771e2c1e已退出,代码为0(0x0)   mscorlib.dll中发生了'System.Reflection.TargetInvocationException'类型的第一次机会异常

我一直在努力寻找这个问题的解决方案,因为我在2天之后没有遇到任何问题因此在此发布。我已经安装了所有框架/服务包,这也是此前提条件。有没有人尝试过这个步骤并遇到类似的问题?让我更进一步的是,我的两台开发机器中的示例代码也失败了(1是Win XP和Win 7)。

在停靠时,是否有其他替代方法可以在使用SQL Express Server的Windows CE设备中更新表?

1 个答案:

答案 0 :(得分:1)

要求是找到一种方法来覆盖停靠设备上的表(通过ActiveSync / Sync Center连接),通过从Pocket PC直接连接到SQL Server(通过指定任一IP地址)来实现这一点。

用户将在系统配置/选项下指定SQL Server凭据,这将用于连接到SQL Server。一旦从服务器获得所需数据,就会使用相关数据更新压缩数据库。

以下网络资源为解决此问题并实现目标铺平了道路。

  1. Connecting to SQL Server Express from a Pocket PC application

  2. Accessing SQL Server Express from the emulator (or PDA)