原文连接http://chaoyouzhuo.blog.163.com/blog/static/12637600120098116554277/
1、 打开SQL Server 2005 ,新建一个用于测试的数据库“mobileTest”,在新建一张表。
2、 我们向表中添加3条记录,然后我们配置 WEB同步。点击“开始”-->"Microsoft SQL Server 2005 mobile edition"-->"配置WEB同步",出现配置向导,点击下一步。
3、 选择服务器类型为SQL mobile edition 。
4、 WEB服务器:IIS计算机名为本地计算机名,选择创建新的虚拟目录,选择默认网站,点击下一步。
5、 输入别名“mobile”点击下一步。
6、 ”出现文件不存在,是否创建它“的提示,点击”是“;出现是否要复制和注册SQL mobile代理 ,点击”是“;出现”安全通道“对话框,点击”是“;出现客户端身份验证,本实验选择”匿名登录“,点击下一步。
7、 创建一个共享文件夹,在快照共享访问中选择你上面创建的共享文件,点击下一步。
8、 出现共享快照为空,是否创建它的对话框,点击“是”;
9、 出现完成向导对话框,提示客户端可将“http://ZHUOCHAOYOU/mobile/sqlcesa30.dll”用作 Internet URL。 点击完成
10、 成功配置了WEB 同步,点击”关闭“
11、 在浏览器中输入http://ZHUOCHAOYOU/mobile/sqlcesa30.dll,就可以看到访问代理成功的提示。
12、 Vs创建一个智能设备项目,添加两个按钮,PULL菜单是从数据库服务器中提取数据到本地智能机上,PUSH菜单是把本地的数据推送到数据库服务器。
13、 添加引用“System.Data.SqlServerCe”
14、 Pull的方法如下
private void pull_Click(object sender, EventArgs e)
{ //先删除本地的数据库,才可以获取最新的数据
if (System.IO.File.Exists(@"/My Documents/mobileTest2.sdf"))
System.IO.File.Delete(@"/My Documents/mobileTest2.sdf");
//创建本地(智能机上)数据库
SqlCeEngine eng = new SqlCeEngine(@"Data Source=/My Documents/mobileTest1.sdf");
eng.CreateDatabase();
using (SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess())
{ //以数据库管理员SA的身份访问数据库服务器
string cn = @"Provider=SQLOLEDB;Data Source=192.168.0.156;Initial Catalog=mobileTest;User ID=sa;Password=1987228";
//前面配置WEB同步时的http访问地址,不过这里要用ip地址
rda.InternetUrl = @"http:// 192.168.0.156/mobile/sqlcesa30.dll";
rda.LocalConnectionString = @"Data Source=/My Documents/mobileTest2.sdf";
try
{ //提取数据,如果你只需要id为1 的记录该SELECT语句就行select id,name from table1=‘1’
rda.Pull("table1", "select id,name from table1 ", cn, RdaTrackOption.TrackingOn, "rdatableerror");
MessageBox.Show("RDA pull Done");
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
}
}
Push的方法如下
private void push_Click(object sender, EventArgs e)
{
using (SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess())
{
string cn = @"Provider=SQLOLEDB;Data Source=192.168.0.156;Initial Catalog=mobileTest;User ID=sa;Password=1987228";
rda.InternetUrl = @"http://192.168.0.156/mobile/sqlcesa30.dll";
rda.LocalConnectionString = @"Data Source=/My Documents/mobileTest2.sdf";
try
{ //推送数据回服务器数据库
rda.Push("table1",cn);
}
catch (SqlCeException ex)
{
MessageBox.Show(ex.Message);
}
MessageBox.Show("RDA push Done");
}
}
}