C#で業務アプリを作るなら、SQLiteは最強の軽量データベースです。 インストール不要・ファイル1つで動く・高速・壊れにくい。 小規模〜中規模の業務アプリなら、SQL Server よりも圧倒的に扱いやすい場面が多いです。
この記事でわかること
・C#でSQLiteを使う最適なパッケージ
・接続方法とCRUDの基本
・DataTableでの読み込み
・Dapper / EF Core との比較
・業務アプリでのベストプラクティス
・C#でSQLiteを使う最適なパッケージ
・接続方法とCRUDの基本
・DataTableでの読み込み
・Dapper / EF Core との比較
・業務アプリでのベストプラクティス
1. C#でSQLiteを使うなら「Microsoft.Data.Sqlite」が最適
2026年時点で最も安定していて軽いのはこれ:
- Microsoft.Data.Sqlite
- SQLitePCLRaw.bundle_e_sqlite3
この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. 業務アプリでのベストプラクティス
- 接続は using で確実に閉じる
- SQLはパラメータ化してSQLインジェクション対策
- DBファイルはアプリと同じフォルダに置かない(権限問題)
- バックアップはファイルコピーでOK(SQLiteの強み)
- 大量データはインデックス必須
まとめ:C# × SQLite は最速で動く“現場向けDB”
- インストール不要で軽い
- ファイル1つで完結
- CRUDが簡単
- 業務アプリと相性抜群
- Dapperと組み合わせると最強
C#で小規模〜中規模のアプリを作るなら、 SQLiteは最もコスパの良いデータベースです。 この記事をベースに、あなたのアプリに組み込んでみてください。