`
ychw365
  • 浏览: 53386 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

智能设备数据库一些用法

阅读更多

通讯组件为以下通讯硬件和数据协议提供支持:

   序列I/O支持
   远程访问服务(RAS)
   传输控制协议/Internet协议(TCP/IP)
   局域网(LAN)
   通话API(TAPI)
   Windows CE 无线服务
   可选组件

1. 创建数据库
// 创建数据库
File.Delete("Test.sdf");
SqlCeEngine engine = new SqlCeEngine(
     "Data Source='Test.sdf';LCID=1033;Password=\"s$;2'!dS64\";Encrypt=TRUE;");
engine.CreateDatabase();

2. 验证和修复数据库
// 验证和修复数据库
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
if (false == engine.Verify())
{
     MessageBox.Show("Database is corrupted.");
     engine.Repair(null, RepairOption.RecoverCorruptedRows);
}

3. 压缩数据库
// 压缩数据库
// 通过从现有文件新建数据库文件来回收 SQL Server Mobile 数据库中浪费的空间。
// 此方法还可用来更改数据库的排序顺序、加密或密码设置。
// 该连接字符串指定一个指向将由此方法创建的目标数据库的连接。
// 如果指定的数据库已经存在或者具有相同名称的另一文件已经存在,则会引发异常。
// 如果为连接字符串传递空字符串,则新的数据库文件将改写旧的数据库文件,
// 但名称保持不变。
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
//engine.Compact(null);
engine.Compact("Data Source=; Password=a@3!7f$dQ;");


4. 收缩数据库

// 收缩数据库
// 通过将空页移动到文件的结尾然后截断该文件,
// 来回收 SQL Server Mobile 数据库中浪费的空间。
// 与 Compact 方法不同,Shrink 方法不创建临时数据库文件,
// 而是将所有空页和未分配的页都移到了文件的结尾,然后截断,从而减小数据库的总大小。
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
engine.Shrink();

5. 合并复制
// 合并复制
// 实例化并配置 SqlCeReplication 对象
SqlCeReplication repl = new SqlCeReplication();
repl.InternetUrl = "http://www.adventure-works.com/sqlmobile/sqlcesa30.dll";
repl.InternetLogin = "MyInternetLogin";
repl.InternetPassword = "<password>";
repl.Publisher = "MyPublisher";
repl.PublisherDatabase = "MyPublisherDatabase";
repl.PublisherLogin = "MyPublisherLogin";
repl.PublisherPassword = "<password>";
repl.Publication = "MyPublication";
repl.Subscriber = "MySubscriber";
repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";

// 创建一个本地 SQL Server Mobile 数据库的订阅
repl.AddSubscription(AddOption.CreateDatabase);

// 跟 SQL Server 数据库进行同步
repl.Synchronize();

// 清理 repl 对象
repl.Dispose();

6. 远程数据访问(RDA)
// 远程数据访问
// 实例化并配置 SqlCeRemoteDataAccess 对象
SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess();
rda.InternetUrl = "http://www.adventure-works.com/sqlmobile/sqlcesa30.dll";
rda.InternetLogin = "MyInternetLogin";
rda.InternetPassword = "<password>";
rda.LocalConnectionString = "Data Source=MyDatabase.sdf";

// 从 SQL Server 下载数据
rda.Pull(
     "Employees",
     "SELECT * FROM DimEmployee",
     "Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;",
     RdaTrackOption.TrackingOnWithIndexes,
     "ErrorTable");

//
// 修改本地数据
//

// 将已修改的数据上传到 SQL Server
rda.Push(
     "DimEmployee",
"Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;");

// 提交 SQL 语句在 SQL Server 上执行
rda.SubmitSql(
     "CREATE TABLE MyRemoteTable (colA int)",
     "Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;");

7. 使用 SqlCeResultSet
// 使用 SqlCeResultSet
// 创建 SQL Server Mobile 数据库连接
SqlCeConnection conn = new SqlCeConnection("Data Source=Northwind.sdf");

// 创建并配置 SqlCeCommand 对象
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Orders";

// 创建 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;

// 将 ResultSetView 绑定到 DataGrid 控件
this.dataGrid.DataSource = resultSetView;

8. 处理 SqlCeException
// 处理 SqlCeException
public static void ShowErrors(SqlCeException e)
{
     SqlCeErrorCollection errorCollection = e.Errors;

     StringBuilder bld = new StringBuilder();
     Exception inner = e.InnerException;

     foreach (SqlCeError err in errs)
     {
         // 标识错误类型的 HRESULT 值,这些错误不是 SQL Server CE 固有的
         bld.Append("\r\nError Code: ").Append(err.HResult.ToString("X"));
         // 对错误进行描述的文本
         bld.Append("\r\nMessage: ").Append(err.Message);
         // 获取 SqlCeError 的本机错误号
         bld.Append("\r\nMinor Err.: ").Append(err.NativeError);
         // 生成错误的提供程序的名称
         bld.Append("\r\nSource: ").Append(err.Source);

         // 遍历前三个错误参数。SQL Server CE 使用错误参数来提供有关错误的其他详细信息。
         foreach (int numPara in err.NumericErrorParameters)
         {
             // 虽然错误可能存在参数,但并非发生的所有错误都返回参数。
             // 如果发生某个错误时没有返回任何参数,则该数组的值为 0。
             if (numPara != 0)
             {
                 bld.Append("\r\nNum. Par.: ").Append(numPara);
             }
         }

         // 遍历最后三个错误参数。SQL Server CE 使用错误参数来提供有关错误的其他详细信息。
         foreach (string errPara in err.ErrorParameters)
         {
             // 虽然错误可能存在参数,但并非发生的所有错误都返回参数。
             // 如果发生某个错误时没有返回任何参数,则该数组的值将为空字符串。
             if (errPara != String.Empty)
             {
                 bld.Append("\r\nErr. Par.: ").Append(errPara);
             }
         }
}

     MessageBox.Show(bld.ToString());
}

分享到:
评论

相关推荐

    wince c# sqlce和sqlite数据库的使用方法以及速度比较

    wince下C#开发智能设备下操作sqlce和sqlite两种数据库。

    OSIPI实时数据库系统.doc

    PI的 C/S 结构 PI是一个真正的CS计算机环境 , 它所使用的智能结构可在多种系统配置下运行。 PI 数 据服务器提供信息集中采集和系统的维护。 PI 客户可处理手中所有的最大数量的信息 。在全厂或全公司可使用...

    数据库安全审计系统介绍.pptx

    数据库信息泄露风险分析 数据非法修改 黑客 第三方人员 公共帐号 系统用户 数据破坏 DBA或超级用户 敏感数据 数据盗取 未授权使用 真实性 完整性 保密性 信息泄露:产生-&gt;传输-&gt;使用全过程 ? 数据库安全审计系统...

    对数据库管理问题的探讨.doc

    对数据库安全性的威胁有时候是来自于网络内部,—些内部用户可能非法获取用户名和密 码,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息 。因此,有必要对数据库中存储的重要数据进行...

    设备管理信息系统论文

    经过分析,我们使用 MICROSOFT公司的 VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行...

    数据库审计系统(1).doc

    在审计手段上,从利用计算机检索,关联,计算等功能对电子数据进行 分析,发展到利用计算机技术将审计人员的经验,技巧,方法智能化,进而利用分析性测试 等先进审计方法系统分析电子数据。在审计的客体上,从单纯审计电子...

    基于物联网技术的教室智能用电系统设计与实现.pdf

    该系统使用Web服务器Internet Information Server (IIS)和数据库服务器Microsoft SQL Server 2010,实时收集教室、实验室和办公室等用电地点的各种数据,包括用电环境和用电设备的状态。通过中心协调器对这些数据...

    浅谈在大数据背景下智能交通系统应用与平台构建.pdf

    还需要建立相应的智能交通信息处理中心,利用车载智能设备和道路监控设备等一系列交通设施,共同实现对城市道路的监管,让城市交通变得井然有序,在通过分类检索、查询信息功能及运输方法,设立数据库信息系统,通过...

    智能客服系统解决方案.doc

    背景 随着移动互联网时代的到来,终端设备从传统的PC、电视、电话到新的智能手机、p ad、穿戴设备等层出不穷,接入渠道从传统的网点、电话、网站、邮件到即时通讯、微 博、微信、SNS等不断涌现,网络信息呈现出碎片...

    基于SpringBoot+Vuespringboot的智能家居系统(源码+部署说明+演示视频+源码介绍).zip

    演示视频:通过实际操作演示了智能家居系统的各项功能,帮助用户了解系统的使用方法和效果。 通过本资源包,用户可以快速搭建一个功能完善的智能家居系统,实现家居设备的智能化控制和管理,提升生活品质。

    智能楼宇概述.pptx

    3、办公自动化(OAS) 通信自动化是智能建筑的神经中枢,楼宇自动化是智能建筑的基础条件,办公自动化是用户使用智能建筑的目的。为了实现办公自动化,在通信自动化和楼宇自动化的基础上,还须要配备各种办公硬件...

    基于B/S结构的工厂设备管理系统的设计与实现

    本系统采用IIS Web服务器、ASP编程技术和SQL SERVER数据库开发方案来完成设计,实现了设备入库、出库、报修、作废以及设备库存、设备详细信息查询和人员管理等基本功能。本论文将从方案、系统的分析、ASP网页制作...

    Wince5.0/6.0/6.1数据库(SQLCE)开发所需文件

    压缩包包含 (1)sqlce.wce5.armv4i ...1.新建一个智能设备项目:文件-&gt;新建-&gt;项目-&gt;选择“智能设备”。 2.建好工程后,把System.Data.SqlServerCe.dll添加到引用。 3.把dll都复制到工程的bin\Debug目录下

    基于物联网的油井智能监测系统研究.pdf

    物联网利用传感技术和智能设备来感知和识别现实世界,并实现人与对象之间信息交换和无缝连接,通过网络传输互联网络、计算、处理和知识挖掘,从而实现实时控制的目标的物理世界,精确管理和科学决策。 2.2 油井钻机...

    什么是智能工厂(完整版).docx

    什么是智能工厂(完整版) 什么是智能工厂(可以直接使用,可编辑 实用优质文档,欢迎下载) 什么是智能工厂 什么是智能工厂 (可以直接使用,可编辑 实用优质文档,欢迎下载) 智能工厂、数字化工厂与智能制造 不可忽视...

    智能农业系统方案.doc

    经过短期培训后,一般工作人员可 掌握系统使用方法,这是为系统在使用过程中的实际需要考虑的.系统交付使用以后,应 该便于各种日常维护工作,能够方便地进行软件的重新配置、系统的智能预警监测、硬 件备品备件的...

    基于物联网的智能灌溉系统开发与应用.pdf

    系统开发使用了浏览器/服务器(B/S)模式,MySQL数据库管理系统、JDBC(Java Database Connectivity)和Tomcat服务器软件。 ### 系统模块化设计 系统采用模块化设计方法,使得各模块之间相互独立且互不影响,分工...

    人工智能技术现状.docx

    一些传统领域,例如交通管理,医疗诊断和法律咨询,仍在使用传统的,基于固定策略结合人的经验的方法。如今,有了海量的历史数据和先进的人工智能技术,智能交通,智慧医疗和人工智能律师成为了可能。这将大大缓解...

    PI-实时数据库系统.pdf

    PI的C/S结构 PI是一个真正的C/S计算 机环境,它所使用的智能结构可在多种系统配置下运行。PI数据服务器 提供信息集中采集和系统的维护。PI客户可处理手中所有的最大数量的 信息。在全厂或全公司可使用多个PI数据...

Global site tag (gtag.js) - Google Analytics