.NET ヘルプ

C# SQLite (開発者向けの仕組み)

更新済み 11月 14, 2023
共有:

SQLiteの紹介

SQLiteは、デスクトップ、ウェブ、モバイルアプリケーションを含むさまざまなアプリケーションで使用されている、セルフコンテインド型、サーバーレス、ゼロコンフィギュレーションなデータベースエンジンです。 このチュートリアルでは、C#でSQLiteを使用する方法について詳しく説明します。 簡単で分かりやすい例を使用して、SQLiteデータベースの作成、管理、および操作の方法を学びます。

SQLiteとは何ですか?

SQLiteは、データを単一のファイルに保存する軽量かつ効率的なデータベースです。従来のデータベースとは異なり、別途サーバーを必要としません。 これは、完全なデータベースシステムの複雑さを必要としないアプリケーションにとって優れた選択肢となります。

C#でSQLiteを設定する

NuGet パッケージ マネージャーの使用

C#プロジェクトでSQLiteを使用するには、必要なSQLiteライブラリをインストールする必要があります。 これはNuGetパッケージマネージャーを通じて行うことができます。

  1. Visual Studioを開き、新しいコンソールアプリケーションを作成します。

  2. プロジェクトを右クリックして、「NuGet パッケージの管理」を選択します。

  3. 「SQLite」を検索し、パッケージをインストールしてください。

接続の確立

接続文字列

接続文字列は、データソースに関する情報とそれに接続する手段を指定する文字列です。 SQLiteでは、接続文字列は次のようになります:

string connectionString = "Data Source=mydatabase.db;";
string connectionString = "Data Source=mydatabase.db;";
Dim connectionString As String = "Data Source=mydatabase.db;"
VB   C#

接続オブジェクト

new SQLiteConnection データソースを使用して接続オブジェクトを作成できます。

using SQLite;
var connection = new SQLiteConnection(connectionString);
using SQLite;
var connection = new SQLiteConnection(connectionString);
Imports SQLite
Private connection = New SQLiteConnection(connectionString)
VB   C#

テーブルの作成

テーブルを作成

データベースを扱う際、テーブルの作成は基本的なことです。 以下は、SQLiteコードを使用してテーブルを作成する方法です。

string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#
  • Id Integer Primary Key: 'id'列を主キーとして設定します。
  • テーブル名: データベーステーブルに付けたい名前。

データの挿入

行の挿入

テーブルにデータを挿入するには、INSERTコマンドを使用する必要があります。

string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES ('John')"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#

パラメータ化されたコマンド

パラメーター化されたコマンドは、SQLインジェクション攻撃からアプリケーションを保護できます。 このアプローチでは、クエリに値を直接挿入する代わりに、パラメータを使用します。

string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES (@name)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@name", "Iron Developer")
command.ExecuteNonQuery()
VB   C#

データの取得

セレクト ステートメント

データベーステーブルからデータを取得するには、SELECT文を使用します。

string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
Dim query As String = "SELECT * FROM person"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Do While reader.Read()
	Console.WriteLine(reader ("name"))
Loop
VB   C#

高度な機能

SQLiteトランザクション

トランザクションは、複数の操作を単一のアトミックアクションで実行できるようにします。 トランザクションの使用方法は次の通りです:

var transaction = connection.BeginTransaction();
try
{
    // Multiple insert, update, or delete operations
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
var transaction = connection.BeginTransaction();
try
{
    // Multiple insert, update, or delete operations
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
Dim transaction = connection.BeginTransaction()
Try
	' Multiple insert, update, or delete operations
	transaction.Commit()
Catch
	transaction.Rollback()
End Try
VB   C#

エンティティフレームワークによるオブジェクト関係マッピング(ORM)

エンティティ フレームワーク (EF) は、.NETエコシステム内で広く使用されているORMツールです。 ドメイン固有のオブジェクトを使用して、リレーショナルデータを扱うことでデータベースプログラミングを簡素化します。 以下は、Entity FrameworkをSQLiteと一緒に使用する方法です。

1. エンティティフレームワークのインストール

まず、SQLite用のEntity Framework NuGetパッケージをインストールしていることを確認してください。

  1. Visual StudioでNuGetパッケージマネージャーを開きます。

  2. 「Entity Framework SQLite」を検索してインストールしてください。

エンティティクラスの作成

エンティティクラスはデータベーステーブルの表現です。 あなたが操作しようとする各テーブルに対してクラスを作成することができます。

public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}
public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}
Public Class Person
	Public Property Id() As Integer ' -  Primary Key
	Public Property Name() As String
End Class
VB   C#

3.DbContext

DbContext を継承するクラスを作成する必要があります。 このクラスはデータベースとのセッションを表し、エンティティのインスタンスをクエリおよび保存することを可能にします。

public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
Public Class MyDbContext
	Inherits DbContext

	Public Property Persons() As DbSet(Of Person)

	Protected Overrides Sub OnConfiguring(ByVal optionsBuilder As DbContextOptionsBuilder)
		optionsBuilder.UseSqlite("Data Source=mydatabase.db;")
	End Sub
End Class
VB   C#

4. CRUD操作

エンティティフレームワークは作成、読み取り、更新、および削除を簡素化します (CRUD (作成、読み取り、更新、削除)) 操作。 新しいレコードを挿入する方法は次のとおりです:

using (var db = new MyDbContext())
{
    db.Persons.Add(new Person { Name = "John" });
    db.SaveChanges();
}
using (var db = new MyDbContext())
{
    db.Persons.Add(new Person { Name = "John" });
    db.SaveChanges();
}
Using db = New MyDbContext()
	db.Persons.Add(New Person With {.Name = "John"})
	db.SaveChanges()
End Using
VB   C#

エンティティ フレームワークを使用することで、レコードの読み取り、更新、および削除が同様に合理化され、簡単に行うことができます。これにより、簡潔でメンテナンスしやすいコードが実現されます。

XMLファイルやその他のデータプロバイダーを扱う

SQLiteはリレーショナルデータに限定されません。 また、XMLファイルを含む他のデータタイプの処理に柔軟性を提供します。

1. XMLデータの保存

SQLiteデータベース内にXMLデータを保存することができます。 これは、設定データや他の階層構造を扱う場合に役立つかもしれません。

string xmlData = "<person><name>John</name></person>";
string query = "INSERT INTO xmltable (data) VALUES (@data)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@data", xmlData);
command.ExecuteNonQuery();
string xmlData = "<person><name>John</name></person>";
string query = "INSERT INTO xmltable (data) VALUES (@data)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@data", xmlData);
command.ExecuteNonQuery();
Dim xmlData As String = "<person><name>John</name></person>"
Dim query As String = "INSERT INTO xmltable (data) VALUES (@data)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@data", xmlData)
command.ExecuteNonQuery()
VB   C#

XMLデータの取得

標準的なXML解析技術を使用して、C#でXMLデータを取得および操作できます。

string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

// Parse the XML data as needed
string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

// Parse the XML data as needed
Dim query As String = "SELECT data FROM xmltable WHERE id = 1"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Dim xmlData As String = reader ("data").ToString()

' Parse the XML data as needed
VB   C#

他のデータプロバイダーと連携する

SQLiteは、さまざまなデータプロバイダーともうまく統合されており、相互運用性と柔軟性を提供します。 これにより、異なるデータベース間をシームレスに切り替えたり、単一のアプリケーション内で異なるデータソースを統合したりすることができます。

強力なライブラリセットIron Suiteの紹介

SQLiteとC#の論理演算子の領域を探索した後は、.NET環境での開発体験を補完し、強化する優れたツールのコレクションを紹介する時が来ました。 Iron Suitは、IronPDF、IronXL、IronOCR、IronBarcodeなど、各々が異なる目的に対応する強力なライブラリのコレクションです。

IronPDF: C# PDFライブラリ

IronPDF は、C#でPDFファイルの作成、読み取り、および操作を行うために設計された包括的なライブラリです。 レポート、請求書、またはPDF形式の文書を作成する必要がある場合、IronPDFが対応します。 IronPDFのユニークな機能の一つは、HTMLをPDFに変換する能力です。 HTMLをPDFドキュメントとしてレンダリングすることができ、CSS、JavaScript、画像も含めることができるため、強力なツールとなります。 こちらのチュートリアルをご覧ください HTMLを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");
    }
}
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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

IronPDFは、SQLiteデータベースを操作する際に不可欠なツールとなります。 SQLiteデータベースのデータからPDFレポートを生成することで、データの円滑な表示と共有が可能になります。

IronXL: Excelファイル管理が簡単に

IronXL 開発者がExcelファイルを簡単に読み込み、書き込み、操作できるようにします。 これはXLS、XLSXなどに対応しており、スプレッドシートデータの処理に最適なツールです。 Excelファイルを読み込み、それを操作し、新しいファイルをゼロから作成することも可能です。 IronXLの機能は、データのエクスポートおよびインポートのためにSQLiteを含むデータベース管理とよく統合されます。

IronOCR: C#での光学文字認識

の 도움 IronOCR画像やPDFファイルからテキストをスキャンするのは簡単です。 多用途なOCRです (光学文字認識) さまざまなソースからテキストを認識するライブラリ。

スキャンしたドキュメントをSQLiteデータベースに保存し、IronOCRを使用してそれらのドキュメント内のテキストを取得および認識することを想像してみてください。 可能性は無限であり、強力なテキスト取得および検索機能を提供します。

IronBarcode: 究極のバーコード生成および読み取りライブラリ

バーコードの生成および読み取りは、簡単に行えます。 IronBarcode. 複数のバーコード形式に対応し、バーコード関連のあらゆるニーズに対応する強力なAPIを提供します。 IronBarcodeは、製品やその他のデータエンティティを表すバーコードを使用するSQLiteを活用するアプリケーションで重要な役割を果たすことができます。 SQLiteデータベースからバーコードを保存および取得することで、データの整合性が向上し、迅速なアクセスが可能になります。

結論

SQLiteは強力でありながら軽量なデータベースエンジンで、初心者とプロフェッショナルの両方に最適です。テーブルの作成や行の挿入から、トランザクションの管理やSQLインジェクション攻撃の防止まで、SQLiteは多くの機能を提供します。 コンソールアプリケーションやモバイルアプリケーションを構築する場合や、外部キーおよびデータセットを扱う必要がある場合、SQLiteは優れた選択肢です。

IronPDF、IronXL、IronOCR、IronBarcodeを含むIron Suitは、SQLiteデータベースやその他のドメインで作業するかどうかに関わらず、C#開発プロジェクトの能力を拡張するための宝の山です。

更に魅力的なのは、これらの各製品がすべて 無料試用, さまざまな機能を探索し理解するために十分な時間を提供します。これらのツールを継続して使用することを決定した後、ライセンスは製品ごとに $749 から開始されます。 2つの個別製品の価格で完全なIron Suiteバンドルも購入できます。

< 以前
SignalR C#(開発者向けの動作原理)
次へ >
C# Webアプリ(開発者向けの動作方法)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 10,659,073 View Licenses >