2016-05-02 8 views
0

Wie kann ich Daten aus vorhandenen SQLite-Datei abrufen oder öffnen? Ich habe eine SQLite-Datei mit dem Namen kamus.sqlite im Asset-Ordner.Abrufen oder Lesen vorhandener SQL-Datei - C#

Die Datenbank hat Spalten ID, Wort, Übersetzung. Ich möchte das Wort und die Übersetzungsspalte in der Listenansicht anzeigen.

Antwort

0

Für die Verwendung von SQLite in UWP müssen Sie eine Wrapper-Bibliothek verwenden.

Lesen Sie diesen Artikel:

Using SQLite on the Universal Windows Platform

Es ist funktioniert. Aber nur Bibliotheksname wurde geändert. Von SQLite Download Page herunterladen VSIX-Paket für Universal Windows Platform.
Und nach der Installation und das Hinzufügen von Referenzpaket Sie von NuGet Wrapper installieren können SQLite.Net-PCL

Oder Sie können Portable Class Library for SQLite verwenden. Ich habe diese Bibliothek benutzt. Hier ist einfaches Beispiel, wie eine Tabelle zu erstellen:

using SQLitePCL; 

using (var conn = new SQLiteConnection("Storage.db")) 
      { 
       string sql = @"CREATE TABLE IF NOT EXISTS People (
              ID INTEGER NOT NULL PRIMARY KEY, 
              FirstName NVARCHAR(50), 
              LastName NVARCHUAR(50));"; 
       using (var statement = conn.Prepare(sql)) 
       { 
        statement.Step(); 
       } 
      } 

Zum Einfügen Datensätze laufen Abfrage:

using (var statement = conn.Prepare("INSERT INTO People (FirstName, LastName) VALUES ('John', 'Doe')")) 
       { 
        statement.Step(); 
       } 

oder können Sie verwenden params:

using (var statement = conn.Prepare("INSERT INTO People (FirstName, LastName) VALUES (?, ?)")) 
       { 
        statement.Bind(1, "John"); 
        statement.Bind(2, "Doe"); 
        statement.Step(); 
       } 

Zum Lesen Zeilen:

List<string> column=new List<string>(); 
using (var statement = conn.Prepare("SELECT LastName, FirstName FROM People WHERE FirstName='John'")) 
    { 
     while (statement.Step() == SQLiteResult.ROW) 
     { 
    // here you can add value into collection for example 
column.Add(statement[0]); // statement[0] - is value of first column 
     } 
    } 
+0

Aber dieses Beispiel, um seine SQL zu machen und im lokalen Paket gespeichert. Während ich brauche, ist sqlite in Assets Ordner auf der Lösung gelesen. – Rose

+0

In diesem Fall ändern Sie einfach den Pfad zu Path.Combine (Package.Current.InstalledLocation.Path, @ "Assets \ Storage.db")) wie im Beispiel von @ Damir-arh –

+0

Wie nehme ich die vorhandenen Tabellen in der Datenbank? Erstellen Sie in diesem Beispiel eine neue Tabelle. – Rose

0

Hier ist, wie Sie es uns tun können ing der sqlite-net-pcl NuGet Paket:

  • das Paket in Ihr Projekt einbauen.

    Install-Package sqlite-net-pcl 
    
  • Erstellen Sie eine Klasse, um Ihre Datenbanktabelle entsprechen:

    // the name of the class must match the name of your database table 
    // the names of properties must match your column names 
    public class Localization 
    { 
        [PrimaryKey] 
        public int Id { get; set; } 
        public string Word { get; set; } 
        public string Translation { get; set; } 
    } 
    
  • laden alle Daten aus der Tabelle in eine Liste:

    using (var connection = new SQLiteConnection(Path.Combine(Package.Current.InstalledLocation.Path, @"Assets\kamus.sqlite"))) 
        { 
         var records = connection.Table<Localization>().ToList(); 
        } 
    
  • Verwenden Sie die Liste nach Bedarf, z.B binden Sie es an eine ListView.

Verwandte Themen