【C#】sqlite-net-pclでテーブルからデータを取得する方法

手軽にアプリケーションに DB を組み込める SQLite をより簡単に使うためのフレームワーク sqlite-net-pcl を使ってテーブルからデータを取得する方法を解説します。

sqlite-net-pcl は SQL を書くことなく DB を操作できるので、簡単なアプリケーションを作成する際に重宝します。「sqlite-net-pclで新規のテーブルを作成する方法」では、sqlite-net-pclを使用して、テーブルを新規で作成する方法を解説しているので、まずはこちらの記事をチェックしてみても良いでしょう。

sqlite-net-pcl でデータを取得する方法

データを取得するにはコネクションをインスタンス化しておき、テーブルを指定してデータを取得する方法になります。コネクションのインスタンス化は「sqlite-net-pclでコネクションをインスタンス化する方法」で解説しているので、あわせてチェックしてみてもよいでしょう。

using (var connection = new SQLiteConnection("DBのパス"))
{
    connection.CreateTable<Item>();
    var datalist = connection.Table<Item>().ToList();
}

サンプルコードは上記のようになります。 CreateTable メソッドについては「sqlite-net-pclで新規のテーブルを作成する方法」にて解説しています。ファイルが既に存在する場合は処理をしないので、おまじないのように処理を入れています。

データを主即する際には connection.Table<Item>() を使用することで、Item テーブルに格納されたデータを取得してくれます。この後にテーブルデータを絞り込む場合は、「connection.Table()」の後に続いてWhere句をチェーンすることで可能です。

using (var connection = new SQLiteConnection("DBのパス"))
{
    connection.CreateTable<Item>();
    var datalist = connection.Table<Item>()
        .Where(x => x.Id > 10)
        .ToList();
}

上記のようにすることで、Itemテーブルに格納されたデータのうち、Id が 10 より大きいデータのみを取得することが可能となります。取得したいデータに応じて処理を追加するようにしましょう。