移动设备和数据(C# 与 Java)

更新:2007 年 11 月

有了 C# 和 .NET Compact Framework,就可以使用桌面数据库编程所用的相同概念和类似 API 来访问和管理移动设备上的数据库数据。ADO.NET 在移动设备上提供一个面向 Windows CE 设备(包括 Pocket PC 和 Smartphone)的桌面 API 子集。有关更多信息,请参见数据库访问(C# 与 Java)

Java

在 Java 中,可以使用 J2ME 和 JDBC 从移动设备访问数据库。有关更多信息,请参见数据库访问(C# 与 Java)。J2ME 不会在所有设备上都表示为单一 API,也没有单一的开发环境。另外,J2ME 必须在虚拟机(具体是 KVM 还是 JVM 取决于配置)中运行。

C#

在 C# 中,可以在桌面或移动设备上使用熟悉的连接、命令和数据表等概念来执行数据库读取操作。您可以使用 System.Data.SqlServerCe 命名空间和类。例如,可以执行下列操作:

  • 将 System.Data.SqlServerCe.SqlCeConnection 用于数据库连接。

  • 将 System.Data.SqlServerCe.SqlCeCommand 用于 SQL 命令对象。

  • 将结果集对象(如 DataTable)用于数据表对象。

.NET Framework 提供了 DataAdapter 对象,使您能够轻松地将上述各类结合使用。可以使用该对象的 System.Data.SqlServerCe.SqlCeDataAdapter 连接属性来设置 System.Data.SqlServerCe.SqlCeConnection 对象。

可以使用 DataAdapter 的 System.Data.SqlServerCe.SqlCeDataAdapter.SelectCommand 属性指定要执行的查询,也可以将该查询与连接对象一起传递给 DataAdapter 的构造函数。

da = new SqlCeDataAdapter("SELECT * FROM Users", cn);

可以使用 DataAdapter 对象的 Fill 方法创建 DataTable 对象。DataAdapter 对象包含由查询返回的结果集数据。可以循环访问 DataAdapter 对象,以便使用 Rows 集合访问数据行。

下面的示例演示如何访问移动设备上的 SQL Server CE (SQLCE) 数据库中的表行。

namespace DataAccessCE
{
    using System.Data;
    using System.Data.SqlServerCe;

    class DataAccessCE
    {
        public static string connectionString = "";
        public static SqlCeConnection cn = null;
        public static SqlCeDataAdapter da = null;
        public static DataTable dt = new DataTable();

        static void Main()
        {
            connectionString = "Data Source=\\My Documents\\Database.sdf" ;
            cn = new SqlCeConnection(connectionString);

            da = new SqlCeDataAdapter("SELECT * FROM Users", cn);
            da.Fill(dt);

            foreach (DataRow dr in dt.Rows)
            {
                System.Console.WriteLine(dr[0]);
            }
        }
    }
}    

有关更多信息,请参见下列主题:

编译代码

在应用程序中使用 SQLCE 数据库之前,必须将对 System.Data.SqlServerCe 的引用添加到项目中。在开发环境中,通过单击“项目”菜单中的“添加引用”可以完成此操作。然后从“添加引用”对话框中选择 System.Data.SqlServerCe 组件。

说明:

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置

可靠编程

若要编译和运行代码,需要满足以下条件;否则,行 da.Fill(dt); 会失败并引发异常。

  • 设备上安装了 SQL Server CE。

  • 在一个名为 Database.sdf 的 SQLCE 数据库上有一个包含一些待测试数据的数据库表。可以在设备上使用 SQL CE 工具生成此表,也可以从 SQL Server 桌面复制该表以生成 .sdf 文件。可以将 .sdf 文件添加到项目,或将它手动复制到连接字符串中指定的目录。

请参见

概念

C# 编程指南

数据集 (ADO.NET)

参考

智能设备(如何实现 - C#)

SqlConnection

SqlCommand

其他资源

C#(针对 Java 开发人员)

智能设备开发

使用数据集 (ADO.NET)