IRONSOFTWAREHOME
開発者向けアップデート

Sqlite C# .NET (開発者向けの仕組み)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

SQLiteは、人気の軽量自己完結型リレーショナルデータベースエンジンです。 .NET開発の文脈では、SQLiteのソースコードは、信頼性の高いデータベースソリューション制御をシステムアプリケーションに統合するための優れた選択肢となります。 この記事では、SQLiteトランザクションの世界を深く掘り下げ、その機能や利点、.NETプロジェクトで効果的に使用する方法を探ります。

SQLiteをC#で使用する方法

  1. SQLiteライブラリをダウンロード
  2. データベースを作成してデータを挿入
  3. リーダーを使用して読み取る
  4. Entity FrameworkとLINQクエリメソッドを使用してSQLiteを使用します。
  5. IronPDFを使用してPDFレポートを生成

SQLiteとは何ですか?

SQLiteは、別のサーバーコンポーネントを必要とせずにアプリケーションに組み込むことができる人気のあるオープンソースのデータベースエンジンです。 それは速く、信頼性があり、クロスプラットフォームです。 SQLiteは、ADO.NETインターフェイスを提供するさまざまなライブラリを通じて.NETプロジェクトアプリケーションで使用できます。 これらのライブラリの1つはMicrosoft.Data.SQLiteです。 これにより、コンソール、デスクトップ、ウェブ、モバイルのいずれであっても、.NETアプリケーションのデータソースとしてSQLiteを使用できます。また、Entity Framework Coreを使用してオブジェクトリレーショナルマッピングを行い、LINQを使用してSQLiteデータベースにクエリを実行することもできます。

この記事では、 Microsoft.Data.Sqlite を使用して、.NETコンソールアプリケーションでSQLiteデータベースを開発、接続、および操作する方法を示します。 あなたは次のことを学びます:

  • Microsoft.Data.Sqlite NuGetパッケージをインストール
  • SQLite接続を作成し、SQLコマンドを実行
  • データリーダーとパラメーターを使用してテーブルを作成および入力
  • データリーダーを使用してデータをクエリ
  • Entity Framework Coreを実装
  • LINQを使用してデータをクエリ
  • PDFレポートを生成

SQLiteライブラリのインストール

Microsoft.Data.Sqliteを使用するためには、ライブラリとその依存関係を含むNuGetパッケージをインストールする必要があります。 これは、Visual Studioパッケージマネージャーや.NET Core CLI、その他NuGetをサポートする任意のツールを使用して行うことができます。 この記事では、パッケージマネージャーを使用してコンソールアプリケーションを作成し、Microsoft.Data.Sqliteをインストールします。これを行うには、パッケージマネージャーコンソールを開いて次のコマンドを実行します:

PM > Install-Package Microsoft.Data.Sqlite

上記のコマンドは、以下のようにパッケージをインストールします。

SQLiteデータベースの作成

SQLiteデータベースを操作するには、データベースファイルへの接続を表す SqliteConnection オブジェクトを作成する必要があります。接続文字列でファイル名やその他のオプションを指定することができます。 ファイルが存在しない場合、自動的に作成されます。 例えば、以下のプログラムは、現在のディレクトリにある employee.db という名前のデータベースファイルに接続を作成します。

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    // ...
}

using ステートメントは、接続がスコープを外れるときに閉じられ、破棄されることを保証します。 SQLコマンドを実行するには、 SqlCommand オブジェクトを作成し、接続に関連付ける必要があります。 実行したいSQLステートメントを CommandText プロパティに設定し、オプションで Parameters コレクションにパラメータを追加できます。 その後、 SqlCommand オブジェクトのメソッドの一つを呼び出して、 ExecuteNonQuery 、 ExecuteScalar 、または ExecuteReader などのコマンドを実行できます。

SQLiteにテーブルを作成する

次のコードは、 ExecuteNonQuery メソッドを使用して Employee という名前のテーブルを作成します。

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    var command = connection.CreateCommand();
    command.CommandText = @"CREATE TABLE Employee (
        Id INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName TEXT NOT NULL,
        Designation TEXT NOT NULL )";
    command.ExecuteNonQuery();
}

テーブルにデータを挿入する

テーブルにデータを挿入するには、同じ SqlCommand オブジェクトを使用し、 CommandText プロパティをINSERTステートメントに設定します。 たとえば、以下のコードはEmployeeテーブルに3つの行を挿入します。

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    StringBuilder builder = new StringBuilder();
    builder.Append("INSERT INTO Employee VALUES(1, 'John', 'Sami', 'CEO');");
    builder.Append("INSERT INTO Employee VALUES(2, 'David', 'Watson', 'Software Engineer');");
    builder.Append("INSERT INTO Employee VALUES(3, 'Victor', 'Khan', 'Content Writer');");
    connection.Open();
    command.CommandText = builder.ToString();
    command.ExecuteNonQuery();
}

SQLiteからデータを読み取る

テーブルからデータを読み取るには、 ExecuteReader オブジェクトの SqlCommand メソッドを使用し、 CommandText プロパティをSELECTステートメントに設定します。 これは、行を繰り返して列名またはインデックスで値にアクセスできる SqliteDataReader オブジェクトを返します。 次の行に移動するには Read メソッドを使用し、適切なデータ型として値を得るには GetXXX メソッドを使用できます。 たとえば、以下のコードはEmployeeテーブルからすべての行を読み取ってコンソールに出力します:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    command.CommandText = @"SELECT * FROM Employee";
    connection.Open();
    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var id = reader.GetInt32(0);
            string firstName = reader.GetString(1);
            string lastName = reader.GetString(2);
            string designation = reader.GetString(3);
            Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}");
        }
    }
}

出力

このコードの出力は:

Sqlite C# .NET (開発者向けの動作): 図1 - 出力

データをクエリする

SQLiteデータベースにクエリを実行する際にLINQを使用したい場合は、Entity Framework Coreを使用してテーブルをクラスにマッピングし、LINQ式を使用してクエリを実行できます。 これを行うには、Microsoft.EntityFrameworkCore.Sqliteパッケージをインストールする必要があります。これはMicrosoft.Data.Sqliteパッケージに依存しています。 また、DbContext から継承し、データベースコンテキストを表すクラスを作成する必要があります。 このクラスは DbContextOptions パラメータを受け取り、基本コンストラクタに渡すコンストラクタを持たなければなりません。 また、マップしたい各テーブルに対して DbSet プロパティを持つ必要があります。 例えば、以下のコードは Stock クラスと DatabaseContext クラスを定義します。

using Microsoft.EntityFrameworkCore;
public class Stock
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string Symbol { get; set; } = string.Empty;
    public double Price { get; set; }
}
public class DatabaseContext : DbContext
{
    public DatabaseContext(DbContextOptions options) : base(options) { }
    public DbSet<Stock> Stock { get; set; }
}

データベースコンテキストを作成するには、 DbContextOptionsBuilder クラスを使用し、接続文字列とデータベースプロバイダーを指定する必要があります。 また、Database.EnsureCreated メソッドを使用して、データベースおよびテーブルが存在しない場合に作成することもできます。例えば、以下のコードはデータベースコンテキストとデータベースを作成します。

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    context.Database.EnsureCreated();
}

データをデータベースに挿入するには、 Add または AddRange を DbSet プロパティのメソッドとして使用し、挿入したいオブジェクトを渡すことができます。 データベースへの変更をコミットするには、 SaveChanges メソッドを使用することができます。 たとえば、次のコードはデータベースに3つのストックを挿入します:

static void Main(string[] args)
{
    var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
    optionsBuilder.UseSqlite("Data Source=stock.db");
    using (var context = new DatabaseContext(optionsBuilder.Options))
    {
        context.Database.EnsureCreated();
        var stock = new List<Stock> {
            new Stock { Id = 1, Name = "NCR", Symbol = "$$", Price = 5.6 },
            new Stock { Id = 2, Name = "Google", Symbol = "GG", Price = 10.6 },
            new Stock { Id = 3, Name = "Apple", Symbol = "AA", Price = 3.6 }
        };
        context.AddRange(stock);
        context.SaveChanges();
    }
}

データをクエリするには、DbSet プロパティのLINQメソッドまたは式を使用し、フィルター、プロジェクション、集計、その他の操作を適用できます。 クエリはSQLステートメントに変換され、データベース上で実行されます。 たとえば、次のコードは価格が6ドル未満の株をクエリし、その名前を出力します:

using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var cheapStocks = context.Stock.Where(p => p.Price < 6).Select(p => p.Name);
    Console.WriteLine("Stock Less than $6 are:");
    foreach (string stock in cheapStocks)
    {
        Console.WriteLine(stock);
    }
}

ストックのリストを含むPDFファイルを作成する必要があるシナリオを想定します。 IronPDFを使用することで、それを簡単に実行できます。

IronPDFの紹介

IronPDFは、複数のパッケージを必要とせずに.NETアプリケーションでPDFファイルを作成、編集、読み取るのを助けるライブラリです。 HTML、URL、JavaScript、CSS、さまざまな画像形式からPDFを生成し、ヘッダー、フッター、署名、添付ファイル、パスワードを追加することができます。 また、クロスプラットフォームの互換性、マルチスレッド、および非同期のサポートにも対応しています。

IronPDFのHTMLからPDFへの機能がその主な特徴で、すべてのレイアウトとスタイルを保持します。 ウェブコンテンツからPDFを生成し、レポート、請求書、文書に最適です。 HTMLファイル、URL、およびHTML文字列をシームレスにPDFに変換できます。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

IronPDFをインストールする

プロジェクトにIronPDFをインストールするには、パッケージマネージャーコンソールに次のコマンドを書き込みます。

PM > Install-Package IronPdf

このコマンドは、IronPDFとそのすべての依存関係をインストールします。

ライセンスキーの追加

IronPDFの使用にはライセンスキーが必要です。 私たちは簡単にIronPDFトライアルライセンスページからトライアルライセンスキーを取得できます。

アプリケーションの起動時にIronPDFを使用する前に、このコードを追加します。 このアプローチは普遍的に効果的で簡単で、.NET Coreおよび.NET Frameworkアプリケーションの両方に対応しています。

IronPdf.License.LicenseKey = "IRONSUITE.ABC.XYZ.MYCOMPANY.COM.ABC-DEPLOYMENT.TRIAL-P45MXL.TRIAL.EXPIRES.31.JAN.2028";

ストックリストを含むPDFファイルの作成

このC#コードは、SQLiteデータベースに保存されたストックデータからPDFレポートを生成します。 それは動的にHTMLテーブルを作成し、株式情報でそれを埋め、ChromeベースのPDFレンダラーを使用してテーブルをダウンロード可能な"stock.pdf"ファイルに変換し、株式の詳細を効率的に報告及び配布します。

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
StringBuilder builder = new StringBuilder();
string style="<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<style>\r\n#stock {\r\n  font-family: Arial, Helvetica, sans-serif;\r\n  border-collapse: collapse;\r\n  width: 100%;\r\n}\r\n\r\n#stock td, #stock th {\r\n  border: 1px solid #ddd;\r\n  padding: 8px;\r\n}\r\n\r\n#stock tr:nth-child(even){background-color: #f2f2f2;}\r\n\r\n#stock tr:hover {background-color: #ddd;}\r\n\r\n#stock th {\r\n  padding-top: 12px;\r\n  padding-bottom: 12px;\r\n  text-align: left;\r\n  background-color: #04AA6D;\r\n  color: white;\r\n}\r\n</style>\r\n</head>\r\n<body>\r\n\r\n<h1>A Stock Table</h1>";
builder.Append(style);
builder.Append("<table id=\"stock\"><tr><td>Stock Symbol</td><td>Stock Name</td><td>Stock Price</td></tr>");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var stocks = context.Stock;
    foreach (Stock stock in stocks)
    {
        builder.Append($"<tr><td>{stock.Symbol}</td><td>{stock.Name}</td><td>{stock.Price}</td></tr>");
    }
}
builder.Append("</table></body></html>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(builder.ToString());
pdf.SaveAs("stock.pdf");

上記のC#コードスニペットは、SQLiteデータベースからストック情報を表示するHTMLテーブルを作成し、その後PDFファイルに変換するように設計されています。データベースとやり取りするためにEntity Framework Coreライブラリを利用します。 最初に、特定の接続文字列を使用してSQLiteを使用するように DbContextOptionsBuilder を構成します。 次に、テーブルの外観のために埋め込まれたCSSスタイルを含むHTML文字列を構築し、ヘッダー付きのテーブル構造を作成し、SQLiteデータベースにクエリを実行してストック情報を取得し、取得したデータをHTMLテーブルに挿入し、最終的にChromeベースのPDFレンダラーを使用してHTMLコンテンツを"stock.pdf"という名前のPDFファイルに変換します。結果のPDFには、ストックシンボル、名前、価格を示すテーブルが含まれます。

出力は以下のようになります

Sqlite C# .NET (開発者向けの動作): 図2 - ストックテーブルの出力

結論

結論として、.NETでのデータベース管理のためにSQLiteを活用することは、軽量で多用途のソリューションを提供します。 この記事では、SQLiteを.NETアプリケーションに統合し、その主な機能と利点を紹介しました。 提供されたコードは、.NETコンソールアプリケーションでSQLiteデータベースを作成、接続、および操作するための実用的なステップを示しました。 さらに、効率的なデータ処理のためにMicrosoft.Data.SqliteおよびEntity Framework Coreを使用する方法を強調しました。 IronPDFの組み込みにより、SQLiteデータベースからのPDFレポートをシームレスに生成する方法を示し、アプリケーションの報告力とデータ配布能力を向上させました。

IronPDFは、開発者数、場所、プロジェクト数、および再配布のニーズに応じてさまざまなライセンスオプションを提供しています。 ライセンスは恒久的であり、1年間の無料サポートと更新が含まれています。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から