次の方法で共有


モバイル デバイスおよびデータ (C# と Java の比較)

更新 : 2007 年 11 月

C# および .NET Compact Framework を使用すると、デスクトップ データベース プログラミングで使用するのと同一の概念および同様の API を使って、モバイル デバイス上のデータベース データにアクセスしたり、管理したりできます。モバイル デバイスでは、ADO.NET が、Pocket PC や Smartphone を含む Windows CE デバイスを対象としたデスクトップ API のサブセットを提供します。詳細については、「データベース アクセス (C# と Java の比較)」を参照してください。

Java

Java では、J2ME および JDBC を使用して、モバイル デバイスからデータベースにアクセスできます。詳細については、「データベース アクセス (C# と Java の比較)」を参照してください。J2ME は、すべてのデバイスで使用できる単一の API ではなく、単一の開発環境を提供しません。さらに J2ME は、構成に応じて KVM、JVM のいずれかの仮想マシン内で実行する必要があります。

C#

C# でデータベースの読み取り操作を実行する場合、デスクトップでもモバイル デバイスでも、接続、コマンド、データ テーブルなどの、なじみのある概念を使用できます。System.Data.SqlServerCe 名前空間およびクラスを使用して操作を実行できます。たとえば、以下を使用できます。

  • データベース接続のために System.Data.SqlServerCe.SqlCeConnection を使用できます。

  • SQL コマンド オブジェクトとして System.Data.SqlServerCe.SqlCeCommand を使用できます。

  • データ テーブル オブジェクトとして、DataTable などの結果セット オブジェクトを使用できます。

.NET Framework では、DataAdapter を使用して上記のクラスを簡単に併用できます。System.Data.SqlServerCe.SqlCeConnection オブジェクトは、このオブジェクトの System.Data.SqlServerCe.SqlCeDataAdapter 接続プロパティを使用して設定できます。

実行するクエリは、DataAdapter の System.Data.SqlServerCe.SqlCeDataAdapter.SelectCommand プロパティを使用して指定するか、または接続オブジェクトと共に、DataAdapter のコンストラクタに渡します。

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

DataTable オブジェクトは、DataAdapter オブジェクトの Fill メソッドを使用して作成します。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 コンポーネントを選択します。

ms228367.alert_note(ja-jp,VS.90).gifメモ :

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

プログラミングの注意点

コードをコンパイルして実行するには、以下が必要です。以下がない場合、da.Fill(dt); は失敗し、例外がスローされます。

  • デバイスにインストールされている SQL Server CE。

  • SQLCE データベース (Database.sdf) に対するテスト用のデータを含むデータベース テーブル。このテーブルは、SQL CE ツールを使用してデバイス上に作成できます。また、SQL Server デスクトップからレプリケートして .sdf ファイルを生成することもできます。.sdf ファイルは、プロジェクトに追加することも、接続文字列で指定されたディレクトリに手動でコピーすることもできます。

参照

概念

C# プログラミング ガイド

DataSet (ADO.NET)

参照

スマート デバイス (C# での操作方法)

SqlConnection

SqlCommand

その他の技術情報

Java 経験者が C# で開発する場合

スマート デバイス開発

DataSet の使用 (ADO.NET)