65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 .NET 和 UltraLite 10 创建 Windows Mobile 数据库应用程序的 10 个步骤

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.53/5 (10投票s)

2007年4月17日

6分钟阅读

viewsIcon

182738

downloadIcon

1478

本文旨在帮助用户开始使用 Visual Studio .NET (C#) 构建移动数据库应用程序。

引言

本文旨在帮助用户使用 UltraLite 和 Visual Studio .NET (C#) 构建移动数据库应用程序。

如果您有兴趣使用 SQL Anywhere 10 创建 .NET 数据库项目,请参阅我的另一篇文章:使用 .NET 和 SQL Anywhere 10 创建 Windows Mobile 数据库应用程序的 10 个步骤

什么是 UltraLite?

UltraLite 是一个极其小巧且功能强大的关系数据库,专为 Windows Mobile、Symbian、Palm 和 Win32 等移动设备设计。由于数据库的占用空间极小,因此非常适合嵌入到移动数据库应用程序中。虽然它通常用于数据复制,但也可作为简单的独立数据库使用。

要求

要开始开发应用程序,需要以下工具

步骤 1 - 创建数据库

有多种方法可以创建 UltraLite 数据库,但最简单的方法是使用 Sybase Central,这是一个用于管理数据库和同步的 GUI 工具。通过选择“开始”|“程序”|“SQL Anywhere 10”|“Sybase Central”来打开 Sybase Central。

打开 Sybase Central 后,您将看到一系列常用任务选择。在 UltraLite 10 下选择“创建数据库”。

Screenshot - Sybase_Central1.jpg

这将启动数据库创建向导。首先,点击“下一步”跳过介绍页。在“新数据库目标平台”中选择“Windows CE (包括 Windows Mobile)”,然后点击“下一步”。在“新数据库文件名”窗口中,输入一个目录和文件名,例如 C:\articles\SimpleUL\simpleul.udb,然后点击“完成”(注意:还有许多其他选项,但为保持简单,我们将使用默认值)。

此步骤应已创建新的 UltraLite 数据库并在 Sybase Central 中连接到它。

接下来,我们将创建一个新表。为此,右键单击“表”文件夹,然后选择“新建”|“表”。

我们将表命名为 customers,然后点击“完成”。

输入以下列并保存表。

Screenshot - Sybase_Central2.jpg

系统将要求您选择一个唯一的列。当使用数据复制时,这是必需的。因此,选择 cust_id 作为唯一列,然后点击“完成”。

步骤 2 - 向数据库添加数据

既然我们已经创建了一个新的数据库和表,我们将要输入一些数据供移动设备使用。由于 UltraLite 数据库在桌面和 Windows CE 设备之间是二进制兼容的,因此我们可以现在添加数据并随应用程序一起部署数据库。

要添加数据,请在 Sybase Central 中单击 customers 表,然后在右侧窗格中选择“数据”选项卡。通过右键单击右侧窗格并选择“添加行”来添加 5 位客户,如下所示。您可以随意更改数据。

Screenshot - Sybase_Central3.jpg

现在我们完成了 UltraLite 数据库的创建。关闭 Sybase Central。

步骤 3 - 创建项目

第一步是创建一个新项目。为此,请打开 Visual Studio .NET 2005,然后选择“新建”|“项目”。在新建项目类型窗口中,展开“Visual C#”|“Smart Devices”,然后选择“Windows Mobile 5.0 Pocket PC”。在模板窗口中,选择“设备应用程序”。最后,将项目命名为 SimpleUL,选择一个保存项目的位置,然后点击“确定”。

Screenshot - VisualStudio1.jpg

步骤 4 - 添加 UltraLite 命名空间

现在我们已经创建了一个模板 C# 应用程序,接下来我们将添加 UltraLite 命名空间并引用 UltraLite 数据库引擎运行时。为此,请选择“项目”|“添加引用”。选择 iAnywhere.Data.UltraLite (CE) 组件,然后点击“确定”。注意:如果未列出该组件,您可以在 SQL Anywhere 安装目录下的 \ultralite\UltraLite.NET\assembly\v2 中找到它。

Screenshot - VisualStudio2.jpg

步骤 5 - 添加 UltraLite 运行时

我们还需要将 UltraLite 运行时包含到应用程序中。可以通过将其添加为“现有项”来完成此操作。为此,请选择“项目”|“添加现有项”。在“文件名”目录中,切换到 SQL Anywhere 10 安装目录,然后选择 \ultralite\ultralite.NET\ce\arm\。接下来,将“文件类型”更改为“所有文件 (*.*)”。选择 ulnet10.dll,然后点击“添加”。

Screenshot - VisualStudio3.jpg

在“解决方案资源管理器”中,单击 ulnet10.dll 文件,并将“复制到输出目录”属性更改为“始终复制”。

步骤 6 - 添加 UltraLite 数据库

我们还将把 UltraLite 数据库包含到应用程序中。重要的是要注意,尽管我们使用 Sybase Central 创建了数据库,但没有理由不能在应用程序首次启动时即时创建它。预先创建数据库的主要优点是数据可以预先填充并包含在应用程序中。

要附加数据库,请选择“文件”|“添加现有项”,然后切换到您在步骤 1 中保存数据库的目录。选择 simpleul.udb,然后点击“添加”。就像在上一步中所做的那样,在“解决方案资源管理器”中选择 simpleul.udb 文件,并将“复制到输出目录”属性更改为“始终复制”。您还需要将“生成操作”属性设置为“内容”。

步骤 7 - 连接到 UltraLite 数据库

现在我们已经创建并附加了一个 UltraLite 数据库,下一步是添加连接到数据库的逻辑。为此,请双击窗体,并通过添加以下行来添加对 UltraLite 命名空间的引用

using iAnywhere.Data.UltraLite;

接下来,我们将添加以下代码来连接到 UltraLite 数据库。

private ULConnection ConnUL = new ULConnection();
public Form1()
{
    InitializeComponent();
    Connect();
}
private void Connect()
{
    try
    {
        String dbf = "\\Program Files\\SimpleUL\\simpleul.udb";

        if (System.IO.File.Exists(dbf))
        {
            ConnUL.ConnectionString = "dbf=" + dbf + ";cache_size=1M";
            if (ConnUL.State != ConnectionState.Open)
            {
                ConnUL.Open();
            }
            ConnUL.DatabaseID = 1000;
        }
        else
        {
            MessageBox.Show("Database is not available", "Error");
            Application.Exit();
        }
    }
    catch (System.Exception t)
    {
        MessageBox.Show(t.Message, "Connection failed");
        return;
    }
}

步骤 8 - 查询 UltraLite 数据库

接下来,我们将开始添加控件来查询数据库。首先,我们将仅从数据库中进行选择。有关更多功能,请参阅 SQL Anywhere 10 在线帮助。

第一步是添加一个控件。为此,我们将选择一个组合框。因此,将一个组合框拖到窗体上,并将其命名为 comboCustomers,如下所示。

Screenshot - VisualStudio4.jpg

再次切换到 Form1.cs 的代码,并在 Form1 函数中添加以下行

RefreshList();

接下来,添加一个新函数,如下所示

private void RefreshList()
{
    try
    {
        using (ULCommand cmd = ConnUL.CreateCommand())
        {
            cmd.CommandText = "select last_name + ', '+ first_name from customers order by last_name";
            ULDataReader reader = cmd.ExecuteReader();

            comboCustomers.Items.Clear();
            while (reader.Read())
                comboCustomers.Items.Add(reader.GetString(0));
        }
    }
    catch (Exception err)
    {
        MessageBox.Show(
        "Exception in Pages List: " + err.Message);
    }
} 

步骤 9 - 编译和部署应用程序

在此示例中,我将使用 Windows Mobile 模拟器作为应用程序目标。要进行编译和部署,请确保目标是其中一个 Windows Mobile 5 模拟器(左上角的组合框)。然后选择“生成”|“部署解决方案”。您应该会看到应用程序编译、启动模拟器并部署应用程序。

部署完成后,您应该可以在设备文件资源管理器中的 \program files\simpleul. 下看到以下文件列表。

Screenshot - WindowsMobile5_1.jpg

步骤 10 - 运行应用程序

从设备模拟器中,单击 SimpleUL 应用程序。应用程序启动后,它将连接并填充 Customer 组合框,如下所示。

Screenshot - WindowsMobile5_2.jpg

后续步骤

您可能希望采取的一些后续步骤来增强应用程序包括:

  • 选择一个 customer 后,将客户地址填充到文本框中
  • 添加更新或删除 customer 的功能
  • 使用 MobiLink 添加数据库复制

摘要

正如我们在上述项目中看到的,UltraLite 是一个极其易于嵌入的数据库。随着您开始使用该数据库,您还将欣赏数据库引擎中包含的性能和功能。小巧的占用空间也使其成为任何移动数据库应用程序的完美伴侣。

© . All rights reserved.