WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程Win Mobile程序开发Pocket PC Phone Edition 的数据库开发

Pocket PC Phone Edition 的数据库开发
作者:microsoft  来源:microsoft  发布时间:2005-12-21 17:23:25
 

Andy Sjostrom
businessanyplace
2003年1月

适用于:
     Pocket PC Phone Edition

摘要:学习如何使用 Pocket PC Phone Edition 工具集快速创建无线应用程序。本文将为您展示一个使用 Visual C# 和 SQL Server CE 2.0 创建的 Pocket PC Phone Edition 应用程序。如果您刚开始接触 .NET Framework 精简版,建议您访问 .NET Compact Framework Overview 白皮书(英文)。

 

一个新的移动计算时代开始了

移动解决方案系统结构的各个部分正在快速地变为现实,并逐渐融合。更重要的是,许多公司越来越清楚地意识到移动解决方案能够带来很高的效率和新的商业机会。消费者也开始在日常生活中使用各种移动设备。移动设备硬件,特别是各种新式的 Pocket PC,正在引领时尚潮流,不断满足企业用户和消费者的需要。将各种事物紧密联系的关键是:新的软件和开发工具。

在过去几个月中,我使用了新的 Visual Studio .NET、Smart Device Extensions 和新的 SQL Server ™CE 2.0。将这些软件组件应用到各种 Pocket PC(如 Pocket PC Phone Edition)上,不但提高了开发效率,而且还促进了许多新的移动应用程序的开发。

SQL Server CE 的新功能

从表面上看来,SQL Server CE 带来了某种矛盾。作为用于移动设备的本地数据库,SQL Server CE 支持断开连接的方案。在大多数情况下,在断开连接的 Pocket PC 上运行的 Pocket PC 应用程序都需要进行本地数据存储。SQL Server CE 还支持连接的方案,而且不论是从开发角度还是从带宽角度来看,它都提高了与远程服务器之间的数据传输效率。

以下是新版本的 SQL Server CE 的一些“闪光点”(当然,不是全部):

  • 集成了新的 .NET Framework 精简版类,可用于本地 SQL Server CE 管理以及远程 SQL Server 连接。
  • 提供了 Connectivity Setup Wizards,可以简化 SQL Server CE 组件的安装。
  • 提供了大量新的内部函数,包括期待已久的 NEWID、CHAR、CHARINDEX、UNICODE、LEN、LTRIM、RTRIM、SPACE、SUBSTRING、IDENTITY、DATALENGTH 等等。
  • UNION (SELECT * FROM Orders UNION SELECT * FROM OldOrders)。
  • 使用 Remote Data Access Pull 请求下载远程服务器表索引的能力。
  • 显著改进的 SQL Server Query Analyzer。

新的 SQL Server CE 2.0 Data Access Architecture 依赖于命名空间中的类:

  • System.Data.SqlServerCE(使用 Merge Replication 和 Remote Data Access 管理本地数据库和远程服务器连接)
  • System.Data.SqlClient(管理远程数据库并包含对 TSQL 和存储过程的支持)

由于 Data Access Architecture 已移至 .NET Framework 精简版中,其中包含的组件得以改进而且便于使用。例如,前面的 Merge Replication Initialize、Run 和 Terminate 架构已被一种方法替代,即 System.Data.SQLServerCE.Replication.Synchronize。此方法可以创建架构并在首次同步时下载数据,然后它强制上载修改后的数据,并在随后的同步过程中将其下载。

新的 Remote Data Access 类也有所改进,包括请求下载远程表索引的能力,以及为 Push 方法定义批处理模式的能力。我先为您介绍一个高尔夫记分牌应用程序示例,这个应用程序是用 SQL Server CE 2.0、Remote Data Access 和 Visual C# 创建的,然后再看一下它的代码。

示例应用程序:走过高尔夫球场

示例应用程序 Golf Anyplace 能够在各种标准的 Pocket PC 上运行,而在实际的高尔夫球场中,由于 Pocket PC Phone Edition 内嵌了连接功能,因此具有更大的优势。Golf Anyplace 实际上就是一个数字记分牌,它可以跟踪您和其他球员的比分结果。其思想是每个高尔夫球员都使用一个 Pocket PC Phone Edition 来跟踪分数。由于每个人都能够将自己的分数强制上载到远程服务器,同时可以请求下载其他人的分数,因此可以持续关注比赛的进程。

这个应用程序的外观如下所示(抱歉,我不是用户界面设计人员):

主窗体用于输入您自己的分数,也可用于查看其他球员的分数。

图 1:输入您的分数

Synchronize 命令将本地数据强制上载到远程服务器,然后再请求下载所有的远程分数数据。

图 2:同步分数

您可以使用 View 窗体来查看比赛的详细信息和概要信息。

图 3:跟踪所有高尔夫球员

示例应用程序:预演代码

让我们看一下代码。在代码的某些位置,您将看到我用不同的方法解决同一个问题。比如,如何进行类的初始化、是使用 DataReader 还是使用 DataSet、如何填充 ListView、是否使用 SQL Server CE 包装,等等。我希望这会对您有所帮助,因为在不同的情况下,各种解决方案各有千秋。请注意,您可以下载 Golf Anyplace 的示例代码(英文)。

启动

Golf Anyplace 的启动对象是 GolfAnyplace.RDAGolf。以下就是构造函数逻辑在应用程序启动时所执行的操作:

public RDAGolf()
{
InitializeComponent();

// 确保数据库存在!
SQLServerCEWrapper SSCEWrapper = new SQLServerCEWrapper();
bool NewDatabase = SSCEWrapper.CreateDatabase();

// 如果创建了新数据库,则执行第一次请求下载操作!
if(NewDatabase==true)
{
// 调用 Pull 而不保留本地数据! (没有任何数据!)
SSCEWrapper.Pull(false);
}

// 填充组合框
for(int iCounter=1; iCounter < 19; iCounter++)
this.cmbHole.Items.Add(iCounter.ToString());

// 将第一洞作为默认设置
this.cmbHole.SelectedIndex = 0;

}

您可以看到,我使用了一个 SQL Server CE 包装。这样做的目的是将与数据库相关的代码组织到一个位置。使用包装可以帮助我管理和使用本地数据库以及远程服务器同步。

以下是包装的前几行代码。

using System;
using System.Data;
using System.Windows.Forms;
using System.Collections;
using System.Data.Common;
using System.Data.SqlServerCe;
using System.Data.SqlClient;

namespace GolfAnyplace
{

public class SQLServerCEWrapper
{

public string InternetServer = "http://servername/directory/sscesa20.dll";
public string InternetUser ="DOMAIN\\user";
public string InternetPassword = "password";
p

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码