Mobile Geräte und Daten (C# und Java im Vergleich)

Aktualisiert: November 2007

C# und .NET Compact Framework ermöglichen Ihnen den Zugriff auf und die Verwaltung von Datenbankdaten auf mobilen Geräten. Dabei kommen dieselben Konzepte und ähnliche APIs zur Anwendung, wie Sie sie bei der Desktop-Datenbankprogrammierung verwenden. Auf mobilen Geräten stellt ADO.NET eine Teilmenge der Desktop-API für Windows CE-Geräte, einschließlich Pocket PCs und Smartphones, zur Verfügung. Weitere Informationen hierzu finden Sie unter Datenbankzugriff (C# und Java im Vergleich).

Java

In Java können Sie mit J2ME und JDBC von einem mobilen Gerät auf eine Datenbank zugreifen. Weitere Informationen hierzu finden Sie unter Datenbankzugriff (C# und Java im Vergleich). J2ME stellt nicht auf allen Geräten eine einheitliche API dar und verfügt über mehr als eine Entwicklungsumgebung. Außerdem muss J2ME auf einem virtuellen Computer ausgeführt werden – je nach Konfiguration ist dies entweder eine KVM oder eine JVM.

C#

Um in C# einen Datenbanklesevorgang auszuführen, können Sie die vertrauten Konzepte einer Verbindung, eines Befehls und einer Datentabelle auf dem Desktop oder dem mobilen Gerät verwenden. Sie verwenden den System.Data.SqlServerCe-Namespace und die darin enthaltenen Klassen. Sie haben beispielsweise folgende Möglichkeiten:

  • Verwenden Sie System.Data.SqlServerCe.SqlCeConnection für die Datenbankverbindung.

  • Verwenden Sie System.Data.SqlServerCe.SqlCeCommand für das SQL-Befehlsobjekt.

  • Verwenden Sie ein Resultsetobjekt (z. B. DataTable) für das Datentabellenobjekt.

Der von .NET Framework bereitgestellte DataAdapter sorgt dafür, dass die oben erwähnten Klassen problemlos miteinander verwendet werden können. Das System.Data.SqlServerCe.SqlCeConnection-Objekt kann über die System.Data.SqlServerCe.SqlCeDataAdapter-Verbindungseigenschaft des Objekts festgelegt werden.

Die auszuführende Abfrage wird mithilfe der System.Data.SqlServerCe.SqlCeDataAdapter.SelectCommand-Eigenschaft des DataAdapter angegeben oder einfach zusammen mit dem Verbindungsobjekt an den Konstruktor des DataAdapter übergeben.

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

Das DataTable-Objekt wird mit der Fill-Methode des DataAdapter-Objekts erstellt. Das DataAdapter-Objekt enthält die von der Abfrage zurückgegebenen Resultsetdaten. Mithilfe der Zeilenauflistung können Sie das DataAdapter-Objekt durchlaufen, um mit der Rows-Auflistung auf die Datenzeilen zuzugreifen.

Der folgende Code zeigt, wie Sie auf die Zeilen in einer SQL Server CE (SQLCE)-Datenbanktabelle auf einem mobilen Gerät zugreifen können.

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]);
            }
        }
    }
}    

Weitere Informationen finden Sie unter den folgenden Themen:

Kompilieren des Codes

Bevor Sie aus einer Anwendung heraus mit einer SQLCE-Datenbank arbeiten können, müssen Sie dem Projekt einen Verweis auf System.Data.SqlServerCe hinzufügen. Dazu klicken Sie in der Entwicklungsumgebung im Menü Projekt auf den Befehl Verweis hinzufügen. Wählen Sie dann im Dialogfeld Verweis hinzufügen die System.Data.SqlServerCe-Komponente aus.

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Stabile Programmierung

Zum Kompilieren und Ausführen des Codes müssen die folgenden Voraussetzungen erfüllt sein. Andernfalls tritt in der Zeile da.Fill(dt); ein Fehler auf und löst eine Ausnahme aus.

  • SQL Server CE muss auf dem Gerät installiert sein.

  • Es muss eine Datenbanktabelle mit Daten mit dem Namen Database.sdf zum Testen in einer SQLCE-Datenbank vorhanden sein. Sie können diese Tabelle auf dem Gerät mithilfe von SQL CE-Tools erstellen oder von einem SQL Server-Desktop replizieren, um die SDF-Datei zu generieren. Sie können die SDF-Datei dem Projekt hinzufügen oder manuell in das Verzeichnis kopieren, das in der Verbindungszeichenfolge angegeben ist.

Siehe auch

Konzepte

C#-Programmierhandbuch

ADO.NET-Datasets

Referenz

Intelligente Geräte (Vorgehensweise in C#)

SqlConnection

SqlCommand

Weitere Ressourcen

C# für Java-Entwickler

Entwicklung für intelligente Geräte

'DataSets', 'DataTables' und 'DataViews' (ADO.NET)