0

Ich entwickle Windows Phone 7 Anwendung. Ich bin neu in der Anwendungsentwicklung von Windows Phone 7. Ich möchte die SQL Server Compact Edition-Datenbank in meiner Anwendung für die Datenbankkonnektivität verwenden. So habe ich in meiner Anwendung die Datenbank erstellt, indem ich mit der rechten Maustaste auf die 'Datenverbindung' klicke. & Die 'Verbindung hinzufügen' im Server Explorer auswählen. Danach habe ich die Datenbank mit dem Erstellen-Button im geöffneten Fenster erstellt. Dann habe ich meine Verbindung getestet. Es war erfolgreich. Ich habe die erstellte Datenbankdatei in meiner Anwendung hinzugefügt, indem ich mit der rechten Maustaste auf den Projektnamen & klicke und das vorhandene Objekt hinzufügen auswähle. Die Datenbankdatei wurde als "ExpenseManagerDB.sdf" hinzugefügt. Ich habe die Tabellen für diese Datenbank mithilfe des Server-Explorers erstellt. Jetzt möchte ich programmatisch die Datenbankverbindung für meine Anwendung durchführen. So verwende ich den folgenden CodeWie wird die Klasse SqlCeConnection in der Anwendung Window Phone 7 verwendet?

namespace ExpenseMgrMobAppl.Category 
{ 
    public partial class Category : PhoneApplicationPage 
    { 
     private void Submitbutton_Click(object sender, RoutedEventArgs e) 
     { 
      string conSTR = "Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\ExpenseManagerDB.sdf;Persist Security Info=False"; 
      SqlCeConnection connection = new SqlCeConnection(conSTR); 
      SqlCeCommand cmd = new SqlCeCommand("select category_name form category where category_id=1", connection); 
      connection.Open(); 
      textBlock1.Text = cmd.ExecuteScalar.ToString(); 
      connection.Close(); 
     } 
    } 
} 

Aber ich bin keine Namespace/Montage für die SqlCeConnection Klasse zu finden. Ich habe auch versucht, Verweis auf die DLL 'System.Data.SqlServerCE.dll' in meiner Anwendung hinzuzufügen. Aber die Referenz konnte nicht hinzugefügt werden. Was muss ich für die Datenbankkonnektivität tun? Was muss ich tun, um die SqlCeConnection-Klasse in meiner Anwendung zu verwenden? Ich suche nach etwas, von dem ich die SqlCeConnection-Klasse in meiner Anwendung verwenden kann? Können Sie mir bitte eine Lösung oder einen Link zur Verfügung stellen, durch die ich das oben genannte Problem lösen kann? Wenn ich im obigen Fall etwas falsch mache, dann bitte führe mich.

Antwort

4

SQL CE ist in dieser Version der Tools nicht verfügbar.

Die Alternativen sind Speicher hinter einem Web-Service, Drittanbieter-db-Quellen wie Sterling oder lokaler Speicher in Dateien, die zum Beispiel XML und LINQ verwenden.

+0

Bedenken Sie Ihren Speicherbedarf, wenn Sie der Codebasis Ihrer App Drittanbieter-Datenbankpakete hinzufügen. Je nach dem, was Sie tun, ist es nicht unbedingt notwendig, einen Overhead zu haben. –

1

Wie Mick N sagt, gibt es einige Drittanbieter-Datenbanken für das Telefon. Werfen Sie einen Blick auf

Allerdings glaube, mein Rat wäre, sorgfältig darüber, ob Sie wirklich benötigen eine vollständige relationale Datenbank in Ihrer App am Telefon. Wenn Sie es nur zum Speichern und Abrufen von Daten verwenden, sind binäre serialisierte Dateien äußerst effizient und leicht.

Denken Sie daran, das Telefon ist eine sehr ressourcenbeschränkte Umgebung. Während wir uns auf dem Desktop für die meisten Datenspeicheranforderungen sofort an eine Datenbank wenden würden, weil sie unser Leben einfacher macht. Am Telefon müssen wir vorsichtiger sein und uns für die Umwelt optimieren - auch wenn das unser Leben als Programmierer etwas schwieriger macht. Eine vollständige Datenbank sollte nicht unbedingt die erste Option sein, wenn es um das Speichern von Daten geht.

Das heißt, wenn Sie eine Datenanforderung haben, dass Sie glauben, eine vollständige relationale Datenbank, dann sollten Sie unbedingt eine der oben genannten DBs verwenden.