2016-05-02 14 views
0

既存のsqliteファイルからデータを取得またはオープンするにはどうすればよいですか?アセットフォルダにkamus.sqliteという名前のsqliteファイルがあります。既存のSQLファイルを取得または読み取る - C#

データベースには、id、word、translationという列があります。リストビューに単語と翻訳カラムを表示したい。

答えて

0

UWPでSQLiteを使用するには、いくつかのラッパーライブラリを使用する必要があります。

この記事を読む:

Using SQLite on the Universal Windows Platform

それは作品です。しかし、ライブラリ名だけが変更されます。 SQLite Download PageからUniversal Windows Platform用のVSIXパッケージをダウンロードしてください。
そして、あなたはSQLite.Net-PCL

ラッパーNuGetからインストールすることができますそれとも、Portable Class Library for SQLiteを使用することができます参照パッケージをインストールして追加した後。私はこのライブラリを使用しました。ここでは、テーブルを作成する方法を簡単な例である:

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

クエリを実行レコードを挿入するには:

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

か、のparams使用することができます。

:行を読み取るには

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

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

しかし、そのサンプルはそのSQLを作成し、ローカルパッケージに格納されています。私が必要なのは、ソリューションの資産フォルダにsqliteを読み込んでいます。 – Rose

+0

この場合、@ Damir-arhの例のようにPathをPath.Combine(Package.Current.InstalledLocation.Path、@ "Assets \ Storage.db")に変更するだけです。 –

+0

データベース内の既存のテーブルはどのように取るのですか?そのサンプルでは、​​新しいテーブルを作成するためです。 – Rose

0

ここでは、 sqlite-net-pcl NuGetパッケージ:

  • パッケージをプロジェクトにインストールします。

    Install-Package sqlite-net-pcl 
    
  • データベースのテーブルに対応するクラスを作成します。リストに

    // 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; } 
    } 
    
  • ロードテーブルからすべてのデータ:

    using (var connection = new SQLiteConnection(Path.Combine(Package.Current.InstalledLocation.Path, @"Assets\kamus.sqlite"))) 
        { 
         var records = connection.Table<Localization>().ToList(); 
        } 
    
  • を必要に応じて、リストを使用します例えばそれをListViewに結びつけてください。

関連する問題