首先说下,这个例子在网络上到处都有,但是我在实际操作中遇到了很多意想不到的问题,版本问题、连接问题、权限问题,我的天,太多太多,终于在昨晚,顺利把RDA这个功能实现了,这篇文章就将一步一步说说这个过程,以备大家以后遇到问题可以来查阅一下:
一、实验环境:
软件(安装顺序):Windows XP Professional、VS2005、IIS5.1、SQL server 2005(非Express版才有合并发布功能)、Windows Mobile 5 SDK for Pocket PC、Microsoft SQL Server 2005 Mobile Edition Device SDK、Microsoft SQL Server 2005 Mobile Edition Server Tools。
硬件:一台充当分发服务器的台式机,一部PPC(在这里我的是HTC Touch Viva WM6.1)。
说明:在网络上的例子包括微软官方给出的,数据库环境都是 sql2005+sql Compact Edition(v3.5),经过我测试,安装完sql2005后找不到SQL CE3.5的引擎,只能创建SQL Mobile Edition的数据库,然后在VS2008中,它又只支持SQL CE3.5(至少我是这种情况),为了统一环境,我就是用vs2005+SQL Mobile 2005了。
请保证:在安装完sql 2005后,用SQL Server Management Studio登陆时,可以把“数据库引擎”选为“SQL Server Mobile”,在VS2005安装完后,请确保在项目中添加数据源时,可以使用“Microsoft SQL Server Mobile Edition”类型,如下图:
二、实际操作:
1、打开SQL Server Management Studio。
2、连接到本地数据库引擎后,建立一个数据库 RDATester。他有一个表UserInfo,字段有UserID(主键,自动增长)、UserName(char类型就行)。OK!
3、创建快照账户和创建快照文件夹、创建发布、创建订阅、配置Web同步的过程请参看这篇文章的相关章节(其他过程请看本文!):,有些步骤前后可能有不一样的地方,但是绝对正确的。但是值得注意的是,我们现在的软件环境是SQL Server Mobile Edition,不是那篇文章中所指的SQL Server Compact Edition。不影响后续操作。
4、程序实现:
打开vs2005 创建一个WM5 设备应用程序,设计图如下:
上方的是一个dataGrid1。
然后,开始测试我们的程序,代码我将给出源代码下载,在这里就不赘述了,只是需要说明的是,经过我屡次失败的经验来看,数据库连接字符串容易出错,还记得把SQL 2005的远程连接服务选为:“本地和远程连接,同时使用TCP/IP和NamePipe”(在外围配置那里可以找到)
如下图: