りおんクロニクル


C# × SQLite入門|最速で動く軽量DBアプリの作り方【2026年版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

C#で業務アプリを作るなら、SQLiteは最強の軽量データベースです。 インストール不要・ファイル1つで動く・高速・壊れにくい。 小規模〜中規模の業務アプリなら、SQL Server よりも圧倒的に扱いやすい場面が多いです。

この記事でわかること
・C#でSQLiteを使う最適なパッケージ
・接続方法とCRUDの基本
・DataTableでの読み込み
・Dapper / EF Core との比較
・業務アプリでのベストプラクティス

1. C#でSQLiteを使うなら「Microsoft.Data.Sqlite」が最適

2026年時点で最も安定していて軽いのはこれ:

この2つだけでOK。 .NET 10 でも完全対応していて、現場で一番トラブルが少ない組み合わせです。

2. SQLiteデータベースの作成(ファイル1つでOK)

SQLiteは「ファイル=データベース」。 以下のように接続文字列を指定するだけで自動生成されます。

var connectionString = "Data Source=MyDatabase.db";

3. C#でSQLiteに接続する基本コード

using Microsoft.Data.Sqlite;

var connectionString = "Data Source=MyDatabase.db";

using var connection = new SqliteConnection(connectionString);
connection.Open();

Console.WriteLine("SQLiteに接続しました");

4. テーブル作成(CREATE TABLE)

var sql = @"
CREATE TABLE IF NOT EXISTS Users (
    Id INTEGER PRIMARY KEY AUTOINCREMENT,
    Name TEXT NOT NULL,
    Age INTEGER
);";

using var command = new SqliteCommand(sql, connection);
command.ExecuteNonQuery();

5. データ追加(INSERT)

var sql = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
using var command = new SqliteCommand(sql, connection);

command.Parameters.AddWithValue("@name", "Taro");
command.Parameters.AddWithValue("@age", 25);

command.ExecuteNonQuery();

6. データ取得(SELECT → whileで読む)

var sql = "SELECT Id, Name, Age FROM Users";

using var command = new SqliteCommand(sql, connection);
using var reader = command.ExecuteReader();

while (reader.Read())
{
    var id = reader.GetInt32(0);
    var name = reader.GetString(1);
    var age = reader.IsDBNull(2) ? (int?)null : reader.GetInt32(2);

    Console.WriteLine($"{id}, {name}, {age}");
}

7. DataTableで読みたい場合

業務アプリ(WinForms / WPF)では DataGridView に流し込みたい場面が多いので、 DataTableに変換するパターンもよく使います。

var dt = new DataTable();

using var command = new SqliteCommand("SELECT * FROM Users", connection);
using var reader = command.ExecuteReader();

dt.Load(reader);

// DataGridView.DataSource = dt; などに使える

8. Dapperを使うとコードが激減する

軽量ORMの定番。 CRUDが圧倒的に短く書けるので、業務アプリと相性が良いです。

using Dapper;

var users = connection.Query<User>("SELECT * FROM Users").ToList();

9. EF Core(ORM)を使う場合

大規模アプリやWeb APIならEF Coreも選択肢。 ただし、SQLiteは一部制限があるので、 小規模アプリならDapper or 生SQLのほうが速いです。

10. 業務アプリでのベストプラクティス

まとめ:C# × SQLite は最速で動く“現場向けDB”

C#で小規模〜中規模のアプリを作るなら、 SQLiteは最もコスパの良いデータベースです。 この記事をベースに、あなたのアプリに組み込んでみてください。

前のページ  次のページ