ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
SQLiteは、さまざまなデータアクセスアプリケーションおよび環境プラットフォームで広く使用されている、人気のある、軽量で自己完結型のリレーショナルデータベースエンジンです。 .NET開発の文脈において、SQLiteソースコードは、信頼性の高いデータベースソリューションコントロールをシステムアプリケーションに統合するための優れた選択肢となります。 この記事では、SQLiteトランザクションの世界を探求し、その機能、利点、および.NETプロジェクトでの効果的な使用方法について詳しく説明します。
SQLiteライブラリをダウンロード
データベースを作成し、データを挿入します
リーダーを使用して読み取る
Entity FrameworkおよびLINQクエリメソッドを使用してSQLiteを利用する
SQLiteは、別のサーバーコンポーネントを必要とせずにアプリケーションに組み込むことができる人気のあるオープンソースのデータベースエンジンです。 それは高速で、信頼性が高く、クロスプラットフォーム対応です。 SQLiteは、ADO.NETインターフェースを提供するさまざまなライブラリを通じて、.NETプロジェクトアプリケーションで使用できます。 これらのライブラリの一つはMicrosoft.Data.SQLite. これにより、SQLite を .NET アプリケーションのデータソースとして使用することができます。アプリケーションの種類はコンソール、デスクトップ、ウェブ、モバイルのいずれであっても問題ありません。また、Entity Framework Core を使用してオブジェクト-リレーショナルマッピングを実行し、LINQ を使って SQLite データベースにクエリを実行することもできます。
この記事では、.NETコンソールアプリケーションでSQLiteを開発、接続、および操作するために Microsoft.Data.Sqlite
を使用する方法を紹介します。 次のことを学びます:
Microsoft.Data.Sqliteを使用するには、ライブラリとその依存関係を含むNuGetパッケージをインストールする必要があります。 Visual Studioパッケージマネージャー、.NET Core CLI、またはNuGetをサポートするその他のツールを使用してこれを行うことができます。 この記事では、パッケージマネージャーを使用してコンソールアプリケーションを作成し、Microsoft.Data.Sqliteをインストールします。これを行うには、パッケージマネージャーコンソールを開き、以下のコマンドを実行します。
Install-Package Microsoft.Data.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
using
文は、接続がスコープを外れるときに閉じられ、破棄されることを保証します。 SQLコマンドを実行するには、SQLiteCommandオブジェクトを作成し、接続と関連付ける必要があります。 コマンドテキストプロパティに実行したいSQL文を設定し、オプションでパラメーターコレクションにパラメーターを追加できます。 次に、コマンドを実行するために、SQLiteCommandオブジェクトのメソッドのいずれか(ExecuteNonQuery、ExecuteScalar、またはExecuteReader)を呼び出すことができます。
以下のコードは、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
テーブルにデータを挿入するには、同じ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
テーブルからデータを読み取るには、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
このコードの出力は:
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
データベースコンテキストを作成するには、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
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
データベースにデータを挿入するには、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
データをクエリするには、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
例えば、株式のリストを含むPDFファイルを作成する必要があるシナリオを考えましょう。 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
プロジェクトにIronPDFをインストールするには、パッケージ マネージャー コンソールに次のコマンドを入力します。
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";
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"
この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")
上記のC#コードスニペットは、SQLiteデータベースから株情報を表示するHTMLテーブルを作成し、それをPDFファイルに変換するように設計されています。データベースと対話するためにEntity Framework Coreライブラリを使用しています。 最初に、特定の接続文字列でSQLiteを使用するようにDbContextOptionsBuilderを設定します。 コードはまず、テーブルの外観に使用するCSSスタイルを埋め込んだHTML文字列を構築し、ヘッダー付きのテーブル構造を作成します。次に、SQLiteデータベースから在庫情報をクエリし、取得したデータでHTMLテーブルを埋め、最後にChromeベースのPDFレンダラーを使用してHTMLコンテンツを「stock.pdf」という名前のPDFファイルに変換します。生成されるPDFには、株式のシンボル、名称、および価格が表示されるテーブルが含まれます。
結論として、.NETでSQLiteを使用してデータベース管理を行うことにより、軽量で多用途なソリューションを提供します。 この記事では、SQLiteを.NETアプリケーションに統合することを探り、その主な機能と利点を紹介しました。 提供されたコードは、.NETコンソールアプリケーションにおいて、SQLiteデータベースの作成、接続、および操作の実際的な手順を示しています。 さらに、データ処理の効率化のために Microsoft.Data.Sqlite と Entity Framework Core を使用することが強調されました。 IronPDFの組み込みは、シームレスにどのようにPDF レポートを生成するSQLiteデータベースから、アプリケーションの報告およびデータ配布機能を強化します。
IronPDFは様々なライセンスオプション開発者の数、場所、プロジェクト、および再配布のニーズによって異なります。 ライセンスは永久的であり、1年間の無料サポートと更新が含まれています。
10 の .NET API 製品 オフィス文書用