用RDA 方式同步SQLCE 与SQL SERVER 数据库
代码是网上搞的,应该没问题。最后运行的时候错误提示为空,但是提示pull里有错的,iss配置是正确的。我估计是我在电脑上数据库建错了,有没有人碰到过这问题
打开企业管理器,创建一个新数据库,名为“ABC”,在“ABC”下创建一个数据表,这里的数据库是什么类型的数据库?
if (File.Exists(dbPathName))
File.Delete(dbPathName);
string strCon = "Data Source =" + dbPathName + ";Password=";
SqlCeEngine engine = new SqlCeEngine(strCon);
engine.CreateDatabase();
engine.Dispose();
SqlCeRemoteDataAccess rda = null;
//SQL Server 所在的主机的IP
string remoteIP = "172.16.108.61";
//SQL Server 中的数据库,名为ABC
string remoteDB = "abc";
// 数据库ABC 的用户和密码
string user = "sa";
string pwd = "123456";
// 本地sqlce 数据库的路径和名字, 该数据库存在于win CE 系统下.
string localDB = dbPathName;
// 本地sqlce 数据库密码
string localPwd = "";
// 要同步的数据表名
string table = "person";
// 用于连接SQL Server 数据库的字符串
string rdaOleDbConnectString = @"Provider=sqloledb;Data Source=" + remoteIP + ";Initial Catalog=" + remoteDB + ";Persist Security Info=True;User Id=" + user + ";Password =" + pwd;
// 连接本地sqlce 数据库的字符串, 作为SqlCeRemoteDataAccess对象的一个参数
string localConnectString = @"Data Source=" + localDB + ";Password=" + localPwd;
rda = new SqlCeRemoteDataAccess();
rda.InternetLogin = "";
rda.InternetPassword = "";
rda.InternetUrl = "http://" + remoteIP + "/sqlce3/sqlcesa30.dll";
rda.LocalConnectionString = localConnectString;
// 执行同步,SQL SERVER 同步到sqlce
// 参数RdaTrackOption.TrackingOn 指示SQL ServerMobile 跟踪对所提取表的所有更改。
rda.Pull(table, "Select * from " + table, rdaOleDbConnectString, RdaTrackOption.TrackingOn);