.NET ヘルプ

Sqlite C# .NET(開発者向けの動作方法)

更新済み 1月 14, 2024
共有:

SQLite は、さまざまなデータアクセスアプリケーションおよび環境プラットフォームで広く使用されている、人気のある、軽量で自己完結型のリレーショナルデータベースエンジンです。 .NET開発の文脈において、SQLiteソースコードは、信頼性の高いデータベースソリューションコントロールをシステムアプリケーションに統合するための優れた選択肢となります。 この記事では、SQLiteトランザクションの世界を探求し、その機能、利点、および.NETプロジェクトでの効果的な使用方法について詳しく説明します。

C#でSQLiteを使用する方法

  1. SQLiteライブラリをダウンロード

  2. データベースを作成し、データを挿入します

  3. リーダーを使用して読み取る

  4. Entity FrameworkおよびLINQクエリメソッドを使用してSQLiteを利用する

  5. 次のツールを使用してPDFレポートを生成 IronPDF

SQLiteとは何ですか?

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

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

  • Microsoft.Data.Sqlite NuGet パッケージをインストールする
  • SQLite接続を作成し、SQLコマンドを実行する
  • データリーダーとパラメーターを使用してテーブルを作成および入力する
  • データリーダーを使用してデータをクエリする
  • エンティティフレームワーク コアの実装
  • LINQを使用してデータをクエリする

  • PDFレポートを生成

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

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

Install-Package Microsoft.Data.Sqlite

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

SQLiteデータベースの作成

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

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
  connection.Open();
  // ...
}
using (var connection = new SqliteConnection("Data Source=employee.db"))
{
  connection.Open();
  // ...
}
Using connection = New SqliteConnection("Data Source=employee.db")
  connection.Open()
  ' ...
End Using
VB   C#

using 文は、接続がスコープを外れるときに閉じられ、破棄されることを保証します。 SQLコマンドを実行するには、SQLiteCommandオブジェクトを作成し、接続と関連付ける必要があります。 コマンドテキストプロパティに実行したいSQL文を設定し、オプションでパラメーターコレクションにパラメーターを追加できます。 次に、コマンドを実行するために、SQLiteCommandオブジェクトのメソッドのいずれか(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();
}
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();
}
Using connection = New SqliteConnection("Data Source=employee.db")
	connection.Open()
	Dim 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()
End Using
VB   C#

テーブルにデータを挿入

テーブルにデータを挿入するには、同じSQLiteCommandオブジェクトを使用し、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();
}
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();
}
Using connection = New SqliteConnection("Data Source=employee.db")
	Dim command = connection.CreateCommand()
	Dim builder As 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()
End Using
VB   C#

SQLiteからデータを読み取る

テーブルからデータを読み取るには、SQLiteCommandオブジェクトのExecuteReaderメソッドを使用し、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).ToString();
            string designation = reader.GetString(3).ToString();
            Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}");
        }
    }
}
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).ToString();
            string designation = reader.GetString(3).ToString();
            Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}");
        }
    }
}
Using connection = New SqliteConnection("Data Source=employee.db")
	Dim command = connection.CreateCommand()
	command.CommandText = "SELECT * FROM Employee"
	connection.Open()
	Using reader = command.ExecuteReader()
		Do While reader.Read()
			Dim id = reader.GetInt32(0)
			Dim firstName As String = reader.GetString(1)
			Dim lastName As String = reader.GetString(2).ToString()
			Dim designation As String = reader.GetString(3).ToString()
			Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}")
		Loop
	End Using
End Using
VB   C#

出力

このコードの出力は:

SQLite C# .NET(開発者のための仕組み):図1 - 出力

データのクエリ

SQLiteデータベースへのクエリにLINQを使用することを好む場合は、Entity Framework Coreを使用してテーブルをクラスにマッピングし、LINQ式を使用してクエリを実行できます。 これを行うには、Microsoft.Data.Sqliteパッケージに依存するMicrosoft.EntityFrameworkCore.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; }
}
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; }
}
Imports Microsoft.EntityFrameworkCore
Public Class Stock
	Public Property Id() As Integer
	Public Property Name() As String = String.Empty
	Public Property Symbol() As String = String.Empty
	Public Property Price() As Double
End Class
Public Class DatabaseContext
	Inherits DbContext

	Public Sub New(ByVal options As DbContextOptions)
		MyBase.New(options)
	End Sub
	Public Property Stock() As DbSet(Of Stock)
End Class
VB   C#

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

public class MyDbContext : DbContext
{
    public DbSet<MyEntity> MyEntities { get; set; }
}

using (var context = new MyDbContext())
{
    // Ensure the database and tables are created if they do not exist
    context.Database.EnsureCreated();
}
public class MyDbContext : DbContext
{
    public DbSet<MyEntity> MyEntities { get; set; }
}

using (var context = new MyDbContext())
{
    // Ensure the database and tables are created if they do not exist
    context.Database.EnsureCreated();
}
Public Class MyDbContext
	Inherits DbContext

	Public Property MyEntities() As DbSet(Of MyEntity)
End Class

Using context = New MyDbContext()
	' Ensure the database and tables are created if they do not exist
	context.Database.EnsureCreated()
End Using
VB   C#
var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
  optionsBuilder.UseSqlite("Data Source=stock.db");
  using (var context = new DatabaseContext(optionsBuilder.Options))
  {
      context.Database.EnsureCreated();
  }
var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
  optionsBuilder.UseSqlite("Data Source=stock.db");
  using (var context = new DatabaseContext(optionsBuilder.Options))
  {
      context.Database.EnsureCreated();
  }
Dim optionsBuilder = New DbContextOptionsBuilder(Of DatabaseContext)()
  optionsBuilder.UseSqlite("Data Source=stock.db")
  Using context = New DatabaseContext(optionsBuilder.Options)
	  context.Database.EnsureCreated()
  End Using
VB   C#

データベースにデータを挿入するには、DbSetプロパティのAddまたはAddRangeメソッドを使用し、挿入したいオブジェクトを渡すことができます。 変更をデータベースにコミットするには、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();
    }
}
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();
    }
}
Shared Sub Main(ByVal args() As String)
	Dim optionsBuilder = New DbContextOptionsBuilder(Of DatabaseContext)()
	optionsBuilder.UseSqlite("Data Source=stock.db")
	Using context = New DatabaseContext(optionsBuilder.Options)
		context.Database.EnsureCreated()
		Dim stock As New List(Of Stock) From {
			New Stock With {
				.Id = 1,
				.Name = "NCR",
				.Symbol = "$$",
				.Price = 5.6
			},
			New Stock With {
				.Id = 2,
				.Name = "Google",
				.Symbol = "GG",
				.Price = 10.6
			},
			New Stock With {
				.Id = 3,
				.Name = "Apple",
				.Symbol = "AA",
				.Price = 3.6
			}
		}
		context.AddRange(stock)
		context.SaveChanges()
	End Using
End Sub
VB   C#

データをクエリするには、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);
     }
 }
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);
     }
 }
Using context = New DatabaseContext(optionsBuilder.Options)
	 Dim cheapStocks = context.Stock.Where(Function(p) p.Price < 6).Select(Function(p) p.Name)
	 Console.WriteLine("Stock Less than $6 are:")
	 For Each stock As String In cheapStocks
		 Console.WriteLine(stock)
	 Next stock
End Using
VB   C#

例えば、株式のリストを含む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");
    }
}
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 をインストール

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

Install-Package 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";
IronPdf.License.LicenseKey = "IRONSUITE.ABC.XYZ.MYCOMPANY.COM.ABC-DEPLOYMENT.TRIAL-P45MXL.TRIAL.EXPIRES.31.JAN.2028";
IronPdf.License.LicenseKey = "IRONSUITE.ABC.XYZ.MYCOMPANY.COM.ABC-DEPLOYMENT.TRIAL-P45MXL.TRIAL.EXPIRES.31.JAN.2028"
VB   C#

在庫リストを含む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");
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");
Imports Microsoft.VisualBasic

Dim optionsBuilder = New DbContextOptionsBuilder(Of DatabaseContext)()
 optionsBuilder.UseSqlite("Data Source=stock.db")
 Dim builder As New StringBuilder()
 Dim style As String = "<!DOCTYPE html>" & vbCrLf & "<html>" & vbCrLf & "<head>" & vbCrLf & "<style>" & vbCrLf & "#stock {" & vbCrLf & "  font-family: Arial, Helvetica, sans-serif;" & vbCrLf & "  border-collapse: collapse;" & vbCrLf & "  width: 100%;" & vbCrLf & "}" & vbCrLf & vbCrLf & "#stock td, #stock th {" & vbCrLf & "  border: 1px solid #ddd;" & vbCrLf & "  padding: 8px;" & vbCrLf & "}" & vbCrLf & vbCrLf & "#stock tr:nth-child(even){background-color: #f2f2f2;}" & vbCrLf & vbCrLf & "#stock tr:hover {background-color: #ddd;}" & vbCrLf & vbCrLf & "#stock th {" & vbCrLf & "  padding-top: 12px;" & vbCrLf & "  padding-bottom: 12px;" & vbCrLf & "  text-align: left;" & vbCrLf & "  background-color: #04AA6D;" & vbCrLf & "  color: white;" & vbCrLf & "}" & vbCrLf & "</style>" & vbCrLf & "</head>" & vbCrLf & "<body>" & vbCrLf & vbCrLf & "<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 context = New DatabaseContext(optionsBuilder.Options)
	 Dim stocks = context.Stock
	 For Each stock As Stock In stocks
		 builder.Append($"<tr><td>{stock.Symbol}</td><td>{stock.Name}</td><td>{stock.Price}</td></tr>")
	 Next stock
 End Using
 builder.Append("</table></body></html>")
 Dim renderer = New ChromePdfRenderer()
 Dim pdf = renderer.RenderHtmlAsPdf(builder.ToString())
 pdf.SaveAs("stock.pdf")
VB   C#

上記の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の組み込みは、シームレスにどのように PDF レポートを生成する SQLiteデータベースから、アプリケーションの報告およびデータ配布機能を強化します。

IronPDFは様々な ライセンス開発者の数、場所、プロジェクト、および再配布のニーズによって異なります。 ライセンスは永久的であり、1年間の無料サポートと更新が含まれています。

< 以前
C# 二重疑問符(開発者向けガイド)
次へ >
Datatables .NET(開発者にとっての動作方法)

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

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