先发个代码吧,因为只是测试,所以有点随便,哎 毕竟自己也还是个菜鸟,第一次文章...
using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlServerCe; namespace SmartDeviceProject1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 数据向下同步 /// </summary> private void button1_Click(object sender, EventArgs e) { try { if (System.IO.File.Exists(@"/My Documents/数据库mobile.sdf")) { System.IO.File.Delete(@"/My Documents/数据库mobile.sdf"); } SqlCeEngine eng = new SqlCeEngine(@"Data Source=/My Documents/数据库mobile.sdf"); eng.CreateDatabase(); string rdaOleDbconnectionString = "Provider=sqloledb;Data Source=Mycomputer//SQLEXPRESS;Initial Catalog=数据库computer;" + "User Id=sa;Password=123456"; //初始化RAD对象 SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess("http://192.168.1.104/sqlmobile/sqlcesa30.dll", @"Data Source=/My Documents/数据库mobile.sdf"); rda.Pull("测试表mobile", "Select 时间,地点,人物 from 测试表", rdaOleDbconnectionString, RdaTrackOption.TrackingOnWithIndexes, "errotable"); rda.Dispose(); MessageBox.Show("向下同步完成"); } catch (SqlCeException sqlce) { MessageBox.Show(sqlce.Message); } } /// <summary> /// 数据显示 /// </summary> private void button2_Click(object sender, EventArgs e) { string connstr=@"Data Source=/My Documents/数据库mobile.sdf"; SqlCeConnection _Conn = new SqlCeConnection(connstr);//建立连接 _Conn.Open(); SqlCeCommand cmd = _Conn.CreateCommand(); string cmdString1 = string.Format("SELECT 时间,地点,人物 FROM 测试表mobile WHERE (人物='{0}')", textBox1.Text); string cmdString2 = string.Format("SELECT 时间,地点,人物 FROM 测试表mobile"); // cmd.CommandText = "SELECT 时间,地点,人物 FROM 测试表mobile"; if (textBox1.Text != "") { cmd.CommandText = cmdString1; } else if(textBox1.Text=="") { cmd.CommandText = cmdString2; } ResultSetOptions options = ResultSetOptions.Scrollable | ResultSetOptions.Sensitive | ResultSetOptions.Updatable; SqlCeResultSet resultset = cmd.ExecuteResultSet(options); ResultSetView resultSetView = resultset.ResultSetView; this.dataGrid1.DataSource = resultset; // this.dataGrid1.DataSource = resultSetView; dataGrid1.Refresh(); _Conn.Close(); } /// <summary> /// 增添一行数据 /// </summary> private void button5_Click(object sender, EventArgs e) { string connstr = @"Data Source=/My Documents/数据库mobile.sdf"; SqlCeConnection _Conn = new SqlCeConnection(connstr);//建立连接 _Conn.Open(); SqlCeCommand cmd = _Conn.CreateCommand(); string cmdStr = string.Format("INSERT INTO 测试表mobile (时间,地点,人物) VALUES ('{0}','美国','obama')", textBox2.Text); cmd.CommandText = cmdStr; ResultSetOptions options = ResultSetOptions.Scrollable | ResultSetOptions.Sensitive | ResultSetOptions.Updatable; SqlCeResultSet resultset = cmd.ExecuteResultSet(options); _Conn.Close(); MessageBox.Show("添加完成"); } /// <summary> /// 向上同步数据 /// </summary> private void button3_Click(object sender, EventArgs e) { try { string rdaOleDbconnectionString = "Provider=sqloledb;Data Source=Mycomputer//SQLEXPRESS;Initial Catalog=数据库computer;" + "User Id=sa;Password=123456"; //初始化RAD对象 SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess("http://192.168.1.104/sqlmobile/sqlcesa30.dll", @"Data Source=/My Documents/数据库mobile.sdf"); rda.Push("测试表mobile", rdaOleDbconnectionString); rda.Dispose(); MessageBox.Show("向上同步完成"); } catch (SqlCeException sqlce) { MessageBox.Show(sqlce.Message); } } } }
其中
数据库mobile:mobile端的数据库名称,包含表:测试表
数据库computer:PC端数据库名称,包含表:测试表mobile