Mobile RDA 同步数据库的类

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[] 1358 };             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;             }         }     } }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值