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 同步数据库的类--转相关推荐
- windows mobile数据同步方案
距离上篇博客似乎又过了一段日子了,这段日子应该算是挣扎着过来的,从寻找同步错误的过程到使用新的解决方案,总共花了近3个星期,我想自己有必要总结下这次的经历. 项目是使用C#+VS2008开发的,客户端 ...
- Microsoft Sync Framework同步数据库 3:针对同步进行设置
针对同步进行设置 在可以使用 Sync Framework 同步数据库之前,需要通过称为"设置(provisioning)"的流程配置它.所需的设置类型因数据库类型而异.本篇提供有 ...
- 《果然新鲜》电商项目(44)- 利用Logstash自动同步数据库内容到ES
文章目录 1. 如何实现数据库与ES同步 2.数据库数据录入 3. logstash同步数据库内容到ES 3.1 logstash安装插件 3.1.1 logstash-input-jdbc插件安装 ...
- python数据库迁移命令_创建和进行数据库迁移,同步数据库
模型(model)建好后,django可以根据这个模型(model)在数据库中创建一张数据表格. Django自带一个数据库迁移(migration)系统来跟踪对模型(models)的修改,然后同步到 ...
- Windows Mobile 平台EDB 数据库的应用与开发
Windows Mobile 平台EDB 数据库的应用与开发 2011年04月26日 Windows Mobile [b]平台[/b]EDB [b]数据库的应用与开发 [/b] 程乐乎 1,邹仕洪1, ...
- 经常用得到的安卓数据库基类
//创建数据库 public class DBCreate { public static void CreateDatabase(SQLiteDatabase db) { db.beginTrans ...
- sqlite数据库测试类基本使用
2019独角兽企业重金招聘Python工程师标准>>> sqlite数据库测试类的基本使用 1.在清单里配置权限和引入单元测试框架 代码 <?xml version=" ...
- 小博老师解析Java核心技术 ——JDBC数据库操作类封装
2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...
- PHP 自定义session储存 数据库 方式类 高洛峰 细说PHP
自定义session储存 数据库 方式类 在php.ini配置文件中更改设置 (Registered_save_handlers 有三种方式 files user memcache) session. ...
最新文章
- CentOS7安装和配置samba
- 互联网公司面试必问的mysql题目(下)
- 简单的html渲染模板引擎
- Canvas API初步学习
- 快速检查REST API是否有效的方法-从清单文件中获取详细信息
- html视频位置控制器,html5中返回音视频的当前媒体控制器的属性controller
- Hbase简介及常用命令相关知识总结
- python go rpc_Go实现简易RPC框架的方法步骤
- F. Gourmet and Banquet(贪心加二分求值)
- Springboot,log文件配置时,logging.file.name与logging.file
- 根据卫星星历计算卫星坐标——matlab app
- nmap 扫描服务器开放了哪些端口
- 下拉框html回显,html option选中 回显 取值
- qt小闹钟 完整程序_Qt实现闹钟小程序
- 大龄女计算机考研去当老师,考研、考公务员、当老师!哪个更适合女生?史上最强答案给你!...
- HDUOJ1865 1string
- 4-1蚁群算法(ACO)原理
- Android 调用地图导航
- lr_用java_Vuser做性能测试
- 验证中的随机种子(seed),VCS
热门文章
- 2014年9月28日 18:35:01
- ORACLE 执行计划2
- Android studio 设置主题
- NAT(修改IP包的IP或者Port) NAT穿越 keepalive包(IP包),保持映射关系
- C/C++基本类型字节
- android关于控件中setTag(key,Object)的设置的相关问题
- 分布式实时计算—从霍普金大学数据错误谈谈如何保证实时计算数据准确性
- 监督学习—最小二乘法
- Flutter入门:动画相关
- SDNU 1167.花生采摘(排序)