手持设备软件开发实训

Download Report

Transcript 手持设备软件开发实训

手持设备软件开发实训
手持设备软件开发实训
手持设备软件开发实训
第四讲 SQL Mobile远程数据访问
一、SQL Server Mobile数据库简介
SQL Server Mobile是Microsoft SQL Server 2005 Mobile
Edition的简称,是Microsoft SQL Server 2000 Windows
CE Edition 2.0 (SQL Server CE)的升级版本。
• 它将桌面版SQL Server 2005强大的关系数据库功能扩展到基于
Windows Embedded CE、Pocket PC、Smart
Phone的嵌入式移动设备。
• 由于它与SQL Server 2005及Visual Studio 2005的紧密集成,
为开发者的快速应用程序开发提供了一个一致的编程模型,大大
加快了用户应用程序的开发速度和质量。
手持设备软件开发实训
二、 SQL Server Mobile特点
• SQL Server Mobile工具与Microsoft SQL Server 2005的集成。
• 管理工具为Microsoft SQL Server Management Studio
• 与Microsoft Visual Studio 2005的集成。
• 在桌面版计算机上创建SQL Server Mobile数据库的能力
• .NET Compact Framework 中提供了完整的SQL Server Mobile
应用程序编程接口的ADO.NET技术 (System.Data.SqlServerCe)。
• 支持SQL语法的子集。
• 支持合并复制与远程数据访问(RDA)。
手持设备软件开发实训
三、SQL Server Mobile 体系结构
SQL Server Mobile数据库的使用环境是一种典型的客户
端/服务器环境,它就可以作为一种运行在基于Windows
CE的嵌入式移动设备的上的客户端数据库,又可以在与
服务器连接的情况下,实现SQL Server Mobile数据库和
SQL Server 2005数据库同步。
SQL Server Mobile主要包括客户端与服务器端两个部
分:
SQL Server Mobile的客户端是运行于Windows CE设备
上的,包括Sql Server Mobile数据库文件、数据库引擎
以及Sql Mobile Client Agent。
Sql Server Mobile的服务器端是一个运行于IIS服务器和
Sql Server 2005的环境,它可以通过Activesync实现和
客户端的连接,从而实现与客户端进行数据同步。
手持设备软件开发实训
客户端/服务器架构
手持设备软件开发实训
四、远程数据同步简介
SQL Mobile 支持Replication远程数据同步,即支持
从远程的Sql Server服务器中下载数据到设备端的Sql
Mobile数据库中,然后在本地对数据进行浏览和修改,
再将修改的结果更新到Sql Server 服务器中。
Replication需要配置SQL Mobile Server Tools,也就是说
必须要有一个运行IIS的Web Server。Server Tools的主
要作用是将移动设备通过网络发送的数据库访问请求,
转发给SQL Server数据库,并将结果集发送到嵌入式设
备中。
嵌入式设备使用Replication时,SQl Mobile只需要连
接到IIS服务器上的Server Tools。而数据同步需要HTTP
的网络连接支持,网络连接可以是无线网或ActiveSync
连接的PC网络。
手持设备软件开发实训
五、 SQL Server Mobile Replication
SQL Server Mobile Replication是基于SQL Server 的
合并复制(Merge Replication)。可以和SqlServer
2005实现合并复制。
它可以在嵌入式设备与数据库服务器之间交换数据,
并且通过了解决数据冲突的机制。当嵌入式设备被连
接到网络上时,设备端的数据可以与数据库服务器进
行数据同步。
Replication机制提供以下功能:
下载只读数据集
输入并上传新数据
更新并同步数据
手持设备软件开发实训
1、复制的概念
– Article:项目是组成发布的基本单元,可以是表。
– Publication:发布是由项目组成的集合
– Publisher:发布者是通过复制对外发布的数据库
– Subscriber:订阅者是从发布者订阅数据,并将改变提
交给发布者的数据库
• 设备端只能实现订阅者
• 复制会自动在服务端和设备端之间同步变更数据
• SQL Server Compact 只支持合并复制
手持设备软件开发实训
2、合并复制体系架构
• Database Engine
– 对本地数据库进行管理
– 为订阅数据库追踪修改记录
• Client Agent
– SQL CE Replication 组件
– 实现Replication 对象的接口
• Server Agent
– 运行于IIS上的ISAPI
– 管理SQL Server 与SQL CE
的通讯
• Replication Provider
– 复制提供程序运行于IIS上
– 与Publisher 的 Merge Agent
通讯
手持设备软件开发实训
3、创建发布
• 使用SQL Server Management Studio 创建
4、快照文件夹
• 用于保存包含发布数据表schema 和数据信息的快照文件
• 使用IIS 用户通过UNC 路径或FTP 虚拟目录访
问快照文件夹
– 创建共享目录,Replication Provider 可以访问
– 设置NTFS 访问许可
• 可以通过Replication Monitor 检测SnapshotAgent 的状态
手持设备软件开发实训
5、创建订阅
• 使用SQL Server Management Studio 创建
• 用程序代码创建
– 调用AddSubscription 方法进行订阅
– DropSubscription 方法取消一个订阅11.19
手持设备软件开发实训
6、用代码创建订阅
手持设备软件开发实训
六、SQL Server Mobile应用程序开发环境
手持设备软件开发实训
七、ADO.NET数据访问技术
1、ADO.NET架构
手持设备软件开发实训
2、NET数据提供组件
SqlCeConnection------用于连接到数据
SqlCeCommand-----用于执行针对数据源的命令,用于 执
行针对数据源的 一 个Select,INSERT,UPDATE或DELETE命
令
SqlceDataAdapter-----用于从数据源产生一个DataSet,并更
新数据源 。
手持设备软件开发实训
3、DataSet对象
DataSet对象是数据在内存中的表示形式。它包括多个
DataTable对象,而DataTable包含列和行,就象一个普通的
数据库中的表。你甚至能够定义表之间的关系来创建主从关
系(parent-child relationships)。DataSet是在特定的场景下
使用――帮助管理内存中的数据并支持对数据的断开操作
的。
4、使用 ADO.NET 连接到数据源(Connection类)
手持设备软件开发实训
SqlCeConnection 对象
SqlCeConnection.ConnectionString 属性
获取或设置用于打开 SQL Server 数据库的字符串。
Open ()方法
使用 ConnectionString 所指定的属性设置打开数据库连
接
Close ()方法
关闭与数据库的连接。这是关闭任何打开连接的首选方法。
5、Command类-执行命名
手持设备软件开发实训
当建立与数据源的连接后,可以使用 Command 对象来执
行命令并从数据源中返回结果。
 SqlCeCommand 类
表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句
SqlCeCommand.CommandText 属性
获取或设置要对数据源执行的 Transact-SQL 语句
ExecuteNonQuery() 方法
对连接执行 Transact-SQL 语句并返回受影响的行数。
ExecuteScalar ()方法
执行查询,并返回查询所返回的结果集中第一行的第一列
手持设备软件开发实训
6、使用 ADO.NET 连接到数据库并运行命令
在创建与数据库的连接之前,必须具有一个连接字符串。
连接字符串包含建立数据库文件名信息。
string constr = “Data Source=” + @“\Program
Files\DB.sdf”;//连接字符串
使用此连接字符串,新建 SqlCeConnection 对象,并调
用其 Open 方法以建立与数据库的连接:
SqlCeConnection con = new SqlCeConnection(constr );
// 创建SqlCeConnection对象
手持设备软件开发实训
创建 SqlCeCommand 对象,并传入要运行的命令以及在
上一步中创建的连接对象。
SqlCeCommand Cmd=new SqlCeCommand(Sql,
Con)
在创建 SqlCeCommand 对象之后,可调用
ExecuteNonQuery 方法来运行它所表示的命令。(如
DELETE、UPDATE 和 INSERT 语句)
手持设备软件开发实训
7、使用参数
对数据库运行命令(例如,UPDATE、INSERT 和
DELETE 语句)时,通常将这些命令参数化。这样,命令就可
以一次创建、多次执行,执行时使用插入的不同值来代替参
数。
string Sql = "select * from Notes where NoteID=@NoteID";
SqlCeParameter paras = new SqlCeParameter("@NoteID",
Noteid);
Cmd.Parameters.Add(paras);
8、SqlCeDataAdapter 类
表示用于填充 DataSet 和更新 SQL Mobile数据库的一组数据
命令和一个数据库连接。
手持设备软件开发实训
SqlCeDataAdapter 是 DataSet 和 SQL Mobile之间的桥接器,
用于检索和保存数据。SqlCeDataAdapter 通过对数据源使用
适当的 Transact-SQL 语句映射 Fill(它可更改 DataSet 中的
数据以匹配数据源中的数据)来提供这一桥接。
Fill() 方法
在 DataSet 中添加或刷新行以匹配数据源中的行。
9、DataSet 类
表示数据在内存中的缓存。
DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检
索到的数据在内存中的缓存。DataSet 由一组 DataTable 对
象组成,您可使这些对象与 DataRelation 对象互相关联。
手持设备软件开发实训
八、BindingSource控件
BindingSource控件是.NET Compact
Framework 2.0提供的新控件之一。
BindingSource组件有两个用途。首先,它提
供一个将窗体上的控件绑定到数据的间接
层。这是通过将 BindingSource组件绑定到
数据源,然后将窗体上的控件绑定到
BindingSource组件来完成的。与数据的所有
进一步交互(包括导航、排序、筛选和更
新)都是通过调用 BindingSource组件来完
成的。
手持设备软件开发实训
BindingSource Bs=new BindingSource();
Bs.DataSource = myDataSet.Tables[0];
Bs.Filter = "artist = 'Daives";
myGrid.DataSource = Bs;
DataRowView dv = (DataRowView)Bs.Current;//获取列表中的
当前项
Bs.Position获取或设置基础列表中当前项的索引。