.NET 幫助

Sqlite C# .NET(開發人員如何運作)

發佈 2024年1月14日
分享:

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 專案應用程式一起使用。 其中一個這些庫是Microsoft.Data.SQLite. 這允許您將 SQLite 作為 .NET 應用程式的資料來源,無論它們是控制台、桌面、網絡還是移動的應用程式。您還可以使用 Entity Framework Core 執行物件關聯映射,並使用 LINQ 查詢您的 SQLite 資料庫。

本文將向您展示如何使用 Microsoft.Data.Sqlite 在 .NET 主控台應用程式中開發、連接和操作 SQLite。 您將學習如何:

  • 安裝 Microsoft.Data.Sqlite NuGet 套件
  • 建立 SQLite 連接並執行 SQL 命令
  • 使用數據讀取器和參數創建並填充表格
  • 使用資料讀取器查詢資料
  • 實施 EntityFramework Core
  • 使用 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 物件並將其與連接關聯。 您可以將 CommandText 屬性設置為您要執行的 SQL 語句,並可選擇性地向 Parameters 集合中添加參數。 然後,您可以調用 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 表中。

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 - 輸出

查詢資料

如果您更喜歡使用 LINQ 查詢 SQLite 資料庫,可以使用 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; }
}
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 方法來建立資料庫及資料表(如果它們尚不存在)。例如,以下程式碼創建資料庫上下文和資料庫:

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 方法將更改提交到資料庫。 例如,以下代碼將三支股票插入資料庫:

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#

若要查詢資料,您可以使用 LINQ 方法或表達式在 DbSet 屬性上進行操作,並應用篩選、投影、彙總和其他操作。 查詢將會被翻譯成 SQL 語句並在資料庫上執行。 例如,以下代碼查詢價格低於六美元的股票並打印其名稱:

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 試用許可證頁面.

在您的應用程式啟動時,於使用 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 庫與數據庫交互。 最初,它配置一個 DbContextOptionsBuilder 以使用具有特定連接字串的 SQLite。 接著,程式碼構建了一個包含嵌入式 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 提供各種授權選項,這取決於開發人員的數量、地點、項目和重新分配的需求。 這些授權是永久的,並包含一年免費支援和更新。

< 上一頁
C# 雙問號(它如何為開發人員工作)
下一個 >
Datatables .NET(開發人員如何運作)

準備開始了嗎? 版本: 2024.12 剛剛發布

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >