C#でSQLiteからデータ取得したい

Sponsored Link

今回はDapperを使用。インストールします。

接続まではできました。そのDBからデータを取得します。

データの取得方法はさまざまありますが、今回はDapperを使用して取得します。
[ツール] - [Nuget パッケージマネージャ]から、Dapperを入力・選択してインストールします。

正常にインストールが完了すると、ソリューションエクスプローラの「参照」に「Dapper」が追加されているのが確認できます。

Sponsored Link

1レコードのみ取得 QuerySingle

まず、対象テーブルの構造が以下と仮定します。

列は「ID」「Name」「Section」の「Personnel」テーブル。

「ID」をキーに「Name(=社員名)」を取得することとします。

// 引数としてIDを取得する関数を別途用意。ID=1のレコードを取得するとします。
int id = 1;

// レコードの「値」を取得
var name = dbconn.QuerySingle<string>(@"SELECT Name from Personnel where ID = @id", new { id });

dbconnは「接続」で取得したオブジェクトです。そのオブジェクトの「QuerySingle」メソッドで値を取得します。
QuerySingleの型パラメータは、今回は文字列型のため「string」を、またパラメータとして取得するSQL文を指定します。

文字列「山田太郎」が取得できました。

また、テーブルカラムを別途クラスで作成し、型パラメータにそのクラスを指定することでレコード全体を取得することもできます。

public class Personnel
{ 
    public int ID { get; set; }
    public string Name { get; set; }
    public string Section { get; set; }
}
 var name2 = dbconn.QuerySingle<Personnel>(@"SELECT * from Personnel where ID = @id", new { id });

ID「1」レコード全体が取得できています。

Sponsored Link

複数レコード取得 Query

マスタなど複数レコードを一括で取得する場合には「Query」で取得します。

var rec = dbconn.Query<Personnel>(@"SELECT * from Personnel");

Queryの型パラメータはテーブルに相当するクラスを。

複数レコードが取得できています。

Dapperのメソッドはこれ以外にも数多く用意されているようなので、それぞれ用途に合ったメソッドを使用してデータを取得してください。

タイトルとURLをコピーしました