.NET 幫助

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

發佈 2024年1月14日
分享:

SQLite 是一個流行、輕量且自包含的關係型資料庫引擎,廣泛應用於各種資料存取應用程式和環境平台。在 .NET 開發的背景下,SQLite 原始碼作為將可靠的資料庫解決方案控制整合到系統應用程式中的絕佳選擇。本文將深入探討 SQLite 交易,探索其特點、優勢以及如何在您的 .NET 項目中有效地使用它。

如何在 C# 中使用 SQLite

  1. 下載 SQLite 庫

  2. 創建數據庫並插入數據

  3. 用讀取器讀取

  4. 使用 Entity Framework 和 LINQ 查詢方法操作 SQLite

  5. 使用 IronPDF 生成 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 方法將更改提交到資料庫。例如,以下代碼將三個 Stocks 插入資料庫:

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 語句並在資料庫上執行。例如,以下代碼查詢價格低於六美元的股票並打印它們的名稱:

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# 代碼生成一個 PDF 報告,來自存儲在 SQLite 數據庫中的庫存數據。它動態創建一個 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.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >