Mobile RDA 同步数据库的类--转  
 using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlServerCe;
using System.IO;

namespace DataBaseCTLSpace
...{
    class DataBaseCTL
    ...{
        private string assemblyLocalFolder;
        private SqlCeConnection SQLConn;
        private string InternetURL;
        private string OleDbConnectString;

        /**//// <summary>
        /// 构造函数,构造一个操作数据库类
        /// </summary>
        /// <param name="ServerDataBase">服务器数据库名称</param>
        /// <param name="DataBase">本地数据库名称</param>
        /// <param name="ServerName">服务器IP,或者名称</param>
        /// <param name="UserName">用户名</param>
        /// <param name="PassWord">密码</param>
        /// <param name="IISShareDir">IIS共享服务目录,构造InternetURL用</param>
        public DataBaseCTL(string ServerDataBase, string LocalDataBase, string ServerName, string UserName, string PassWord, string IISShareDir)
        ...{
            assemblyLocalFolder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
            assemblyLocalFolder = assemblyLocalFolder + "\" + LocalDataBase + ".sdf";
            InternetURL = "http://" + ServerName + "/" + IISShareDir + "/sqlcesa30.dll";
            OleDbConnectString = "Provider=sqloledb;server=" + ServerName + ";database=" + ServerDataBase
                               + "; User Id=" + UserName + ";Password=" + PassWord;
        }

        ~DataBaseCTL()
        ...{
            SqlCeEngine engine = new SqlCeEngine("Data Source =" + assemblyLocalFolder);
            engine.Shrink();

        }

        /**//// <summary>
        /// 创建数据库文件
        /// </summary>
        /// <returns>成功 True, 失败 False 表示有文件或者出现异常</returns>
        public bool CreateDatbase()
        ...{
            if (File.Exists(assemblyLocalFolder)) return false;
            try
            ...{
                SqlCeEngine engine = new SqlCeEngine("Data Source =" + assemblyLocalFolder);
                engine.CreateDatabase();
                engine.Dispose();
                return true;
            }
            catch
            ...{
                return false;
            }
        }

        /**//// <summary>
        /// 删除数据库文件
        /// </summary>
        /// <returns>成功 True, 失败 False</returns>
        public bool DeleteDatabase()
        ...{
            if (File.Exists(assemblyLocalFolder))
            ...{
                File.Delete(assemblyLocalFolder);
                return true;
            }
            else
                return false;
        }

        /**//// <summary>
        /// 在本地执行SQL
        /// </summary>
        /// <param name="SqlStr">SQL语句</param>
        /// <returns>结果集</returns>
        public ResultSetView ExecuteSqlLocal(string SqlStr,ResultSetView R)
        ...{

            SqlCeConnection conn = new SqlCeConnection("Data Source =" + assemblyLocalFolder);

            // 创建并配置 SqlCeCommand 对象
            SqlCeCommand cmd = conn.CreateCommand();
            cmd.CommandText = SqlStr;

            // 创建 SqlCeResultSet 对象,并配置为可滚动、可更新、检测数据源更改
            ResultSetOptions options = ResultSetOptions.Scrollable |
                                                     ResultSetOptions.Sensitive |
                                                     ResultSetOptions.Updatable;
            SqlCeResultSet resultSet = cmd.ExecuteResultSet(options);

            // 创建 ResultSetView 对象,配置为只显示序号为 1,3,5,8 的列
            ResultSetView resultSetView = resultSet.ResultSetView;
            int[] ordinals = new int[] ...{ 1, 3, 5, 8 };
            resultSetView.Ordinals = ordinals;
            R = resultSetView;
            return resultSetView;
        }

        /**//// <summary>
        /// 在本地执行SQL
        /// </summary>
        /// <param name="SqlStr">SQL语句</param>
        /// <returns>结果</returns>
        public bool ExecuteSqlLocal(string SqlStr)
        ...{
            try
            ...{
                SqlCeConnection conn = new SqlCeConnection("Data Source =" + assemblyLocalFolder);
                SqlCeCommand cmd = conn.CreateCommand();
                cmd.CommandText = SqlStr;
                conn.Open();
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            ...{
                return false;
            }
        }

        /**//// <summary>
        /// 在服务器上执行Sql
        /// </summary>
        /// <param name="SqlStr">Sql语句</param>
        /// <returns></returns>
        public bool ExecuteSqlServer(string SqlStr)
        ...{
            try
            ...{
                SqlCeRemoteDataAccess rda = null;
                rda = new SqlCeRemoteDataAccess();
                rda.InternetUrl = InternetURL;
                rda.LocalConnectionString = "Data Source =" + assemblyLocalFolder;
                rda.SubmitSql(SqlStr,OleDbConnectString);
                return true;
            }
            catch
            ...{
                return false;
            }
        }

        /**//// <summary>
        /// 从服务器上下载表
        /// </summary>
        /// <param name="TableName">表名称</param>
        /// <returns></returns>
        public bool DownloadTable(string TableName)
        ...{
            if (ExecuteSqlLocal("select * from " + TableName))
            ...{//有这个表
                //提交服务器更新
                if (!UPDateTable(TableName)) return false;
                //删除这个表
                if (!ExecuteSqlLocal("drop table " + TableName)) return false;
            }
            
            try
            ...{
                SqlCeRemoteDataAccess rda = null;
                rda = new SqlCeRemoteDataAccess();
                rda.InternetUrl = InternetURL;
                rda.LocalConnectionString = "Data Source =" + assemblyLocalFolder;
                rda.Pull(TableName, "Select * from " + TableName, OleDbConnectString, RdaTrackOption.TrackingOnWithIndexes);//
                return true;
            }
            catch
            ...{

                return false;
            }
        }

        /**//// <summary>
        /// 把更改好的表提交到服务器上
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <returns></returns>
        public bool UPDateTable(string TableName)
        ...{
           try
            ...{
                SqlCeRemoteDataAccess rda = null;
                rda = new SqlCeRemoteDataAccess();
                rda.InternetUrl = InternetURL;
                rda.LocalConnectionString = "Data Source =" + assemblyLocalFolder;
                rda.Push(TableName, OleDbConnectString);//
                return true;
            }
            catch
            ...{
                return false;
            }

        }
    }
}

转载于:https://www.cnblogs.com/tdskee/archive/2008/03/25/1121888.html

Mobile RDA 同步数据库的类--转相关推荐

  1. windows mobile数据同步方案

    距离上篇博客似乎又过了一段日子了,这段日子应该算是挣扎着过来的,从寻找同步错误的过程到使用新的解决方案,总共花了近3个星期,我想自己有必要总结下这次的经历. 项目是使用C#+VS2008开发的,客户端 ...

  2. Microsoft Sync Framework同步数据库 3:针对同步进行设置

    针对同步进行设置 在可以使用 Sync Framework 同步数据库之前,需要通过称为"设置(provisioning)"的流程配置它.所需的设置类型因数据库类型而异.本篇提供有 ...

  3. 《果然新鲜》电商项目(44)- 利用Logstash自动同步数据库内容到ES

    文章目录 1. 如何实现数据库与ES同步 2.数据库数据录入 3. logstash同步数据库内容到ES 3.1 logstash安装插件 3.1.1 logstash-input-jdbc插件安装 ...

  4. python数据库迁移命令_创建和进行数据库迁移,同步数据库

    模型(model)建好后,django可以根据这个模型(model)在数据库中创建一张数据表格. Django自带一个数据库迁移(migration)系统来跟踪对模型(models)的修改,然后同步到 ...

  5. Windows Mobile 平台EDB 数据库的应用与开发

    Windows Mobile 平台EDB 数据库的应用与开发 2011年04月26日 Windows Mobile [b]平台[/b]EDB [b]数据库的应用与开发 [/b] 程乐乎 1,邹仕洪1, ...

  6. 经常用得到的安卓数据库基类

    //创建数据库 public class DBCreate { public static void CreateDatabase(SQLiteDatabase db) { db.beginTrans ...

  7. sqlite数据库测试类基本使用

    2019独角兽企业重金招聘Python工程师标准>>> sqlite数据库测试类的基本使用 1.在清单里配置权限和引入单元测试框架 代码 <?xml version=" ...

  8. 小博老师解析Java核心技术 ——JDBC数据库操作类封装

    2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...

  9. PHP 自定义session储存 数据库 方式类   高洛峰 细说PHP

    自定义session储存 数据库 方式类 在php.ini配置文件中更改设置 (Registered_save_handlers 有三种方式 files user memcache) session. ...

最新文章

  1. CentOS7安装和配置samba
  2. 互联网公司面试必问的mysql题目(下)
  3. 简单的html渲染模板引擎
  4. Canvas API初步学习
  5. 快速检查REST API是否有效的方法-从清单文件中获取详细信息
  6. html视频位置控制器,html5中返回音视频的当前媒体控制器的属性controller
  7. Hbase简介及常用命令相关知识总结
  8. python go rpc_Go实现简易RPC框架的方法步骤
  9. F. Gourmet and Banquet(贪心加二分求值)
  10. Springboot,log文件配置时,logging.file.name与logging.file
  11. 根据卫星星历计算卫星坐标——matlab app
  12. nmap 扫描服务器开放了哪些端口
  13. 下拉框html回显,html option选中 回显 取值
  14. qt小闹钟 完整程序_Qt实现闹钟小程序
  15. 大龄女计算机考研去当老师,考研、考公务员、当老师!哪个更适合女生?史上最强答案给你!...
  16. HDUOJ1865 1string
  17. 4-1蚁群算法(ACO)原理
  18. Android 调用地图导航
  19. lr_用java_Vuser做性能测试
  20. 验证中的随机种子(seed),VCS

热门文章

  1. 2014年9月28日 18:35:01
  2. ORACLE 执行计划2
  3. Android studio 设置主题
  4. NAT(修改IP包的IP或者Port) NAT穿越 keepalive包(IP包),保持映射关系
  5. C/C++基本类型字节
  6. android关于控件中setTag(key,Object)的设置的相关问题
  7. 分布式实时计算—从霍普金大学数据错误谈谈如何保证实时计算数据准确性
  8. 监督学习—最小二乘法
  9. Flutter入门:动画相关
  10. SDNU 1167.花生采摘(排序)