C#でデータベースを扱う際、SQLiteは軽量で高速、そして使いやすいオプションとして人気があります。特に、ローカルでデータを保存する必要があるデスクトップアプリケーションやモバイルアプリの開発で重宝します。この記事では、C#でSQLiteを使用する基本的な方法を、初心者にも分かりやすく解説します。
目次
SQLiteとは
SQLiteは、サーバーレスで設定不要の軽量なリレーショナルデータベースエンジンです。単一のファイルにデータを保存するため、アプリケーションに簡単に組み込むことができます。
C#でSQLiteを使用するための準備
まず、SQLiteを使用するためのNuGetパッケージをインストールする必要があります。Visual Studioのパッケージマネージャーコンソールで以下のコマンドを実行します:
Install-Package System.Data.SQLite
基本的な使用例
以下に、SQLiteデータベースを作成し、テーブルを作成、データを挿入、そして取得する基本的なC#コードを示します:
using System;
using System.Data.SQLite;
class Program
{
static void Main()
{
// データベースファイルのパス
string dbPath = "MyDatabase.sqlite";
// SQLite接続を作成
using (SQLiteConnection connection = new SQLiteConnection($"Data Source={dbPath};Version=3;"))
{
connection.Open();
// テーブルを作成
using (SQLiteCommand cmd = new SQLiteCommand(connection))
{
cmd.CommandText = @"CREATE TABLE IF NOT EXISTS Users(Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT, Email TEXT)";
cmd.ExecuteNonQuery();
}
// データを挿入
using (SQLiteCommand cmd = new SQLiteCommand(connection))
{
cmd.CommandText = @"INSERT INTO Users(Name, Email) VALUES(@name, @email)";
cmd.Parameters.AddWithValue("@name", "山田太郎");
cmd.Parameters.AddWithValue("@email", "yamada@example.com");
cmd.ExecuteNonQuery();
}
// データを取得
using (SQLiteCommand cmd = new SQLiteCommand("SELECT * FROM Users", connection))
{
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}, Email: {reader["Email"]}");
}
}
}
}
}
}
コードの解説
- 接続の作成:
SQLiteConnection
オブジェクトを作成し、データベースファイルのパスを指定します。 - テーブルの作成:
SQLiteCommand
を使用して、SQLクエリを実行します。ここではUsers
テーブルを作成しています。 - データの挿入: パラメータ化されたクエリを使用してデータを挿入します。これはSQLインジェクション攻撃を防ぐ重要な方法です。
- データの取得: SELECTクエリを実行し、
SQLiteDataReader
を使用して結果を読み取ります。 - リソースの管理:
using
ステートメントを使用して、接続やコマンドオブジェクトが適切に破棄されるようにします。
注意点
- SQLiteデータベースファイルは、アプリケーションが書き込み権限を持つ場所に作成されることを確認してください。
- 大量のデータを扱う場合は、トランザクションの使用を検討してください。
- 実際のアプリケーションでは、接続文字列を設定ファイルで管理することをお勧めします。
まとめ
C#でSQLiteを使用する基本的な手順は以下の通りです:
- SQLite用のNuGetパッケージをインストールする
- データベース接続を作成する
- SQLコマンドを実行してテーブルを作成し、データを操作する
- 必要に応じてデータを取得し処理する
これらの基本を押さえることで、軽量で効率的なローカルデータベースをC#アプリケーションに統合できます。SQLiteは設定が簡単で移植性が高いため、デスクトップアプリケーションやモバイルアプリの開発に特に適しています。
コメント