.NET幫助 Sqlite C# .NET(開發者的工作原理) Curtis Chau 更新日期:6月 22, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article SQLite 是一款流行的、輕量化且自包含的關聯式數據庫引擎,廣泛應用於各種數據訪問應用和環境平台。 在 .NET 開發的背景下,SQLite 源代碼是將可靠的數據庫解決方案集成到您的系統應用程序中的絕佳選擇。 本文將深入探討 SQLite 事務的世界,探索其功能、優勢以及如何在您的 .NET 專案中有效使用它。 如何在 C# 中使用 SQLite 下載 SQLite 庫 創建數據庫並插入數據 使用閱讀器讀取 使用 Entity Framework 和 LINQ 查詢方法使用 SQLite 使用 IronPDF 生成PDF報告 什麼是 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 $vbLabelText $csharpLabel using 語句確保連接在超出範圍時關閉並釋放。 要執行 SQL 命令,您需要創建一個 SqlCommand 對象並與連接關聯。 您可以將 CommandText 屬性設置為您要執行的 SQL 語句,並可選擇將參數添加到 Parameters 集合。 然後您可以調用 SqlCommand 對象的一個方法來執行命令,例如 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 $vbLabelText $csharpLabel 將數據插入到表中 要將數據插入到表中,您可以使用相同的 SqlCommand 對象並將 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 $vbLabelText $csharpLabel 從 SQLite 中讀取數據 要從表中讀取數據,您可以使用 SqlCommand 對象的 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); string designation = reader.GetString(3); 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); string designation = reader.GetString(3); 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) Dim designation As String = reader.GetString(3) Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}") Loop End Using End Using $vbLabelText $csharpLabel 輸出 此代碼的輸出為: 查詢數據 如果您喜歡使用 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 $vbLabelText $csharpLabel 要創建數據庫上下文,您需要使用 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 $vbLabelText $csharpLabel 要向數據庫中插入數據,您可以使用 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 $vbLabelText $csharpLabel 要查詢數據,您可以在 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 $vbLabelText $csharpLabel 假設我們有這樣一個場景,我們需要創建一個包含股票列表的 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 $vbLabelText $csharpLabel 首先,確保你的項目安裝了 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" $vbLabelText $csharpLabel 創建包含 股票列表的 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") $vbLabelText $csharpLabel 上面的 C# 代碼片段旨在創建一個顯示來自 SQLite 數據庫的股票信息的 HTML 表,然後將其轉換為 PDF 文件。它使用 Entity Framework Core 庫與數據庫進行交互。 首先,它配置了一個 DbContextOptionsBuilder 以特定的連接字符串使用 SQLite。 然後,代碼構建了一個嵌入 CSS 樣式的 HTML 字符串,用於表的外觀,創建了一個具有標頭的表結構,查詢 SQLite 數據庫中的股票信息,將檢索到的數據填充到 HTML 表中,最後使用基於 Chrome 的 PDF 渲染器將 HTML 內容轉換為名為 "stock.pdf" 的 PDF 文件。生成的 PDF 將包含一個表,顯示股票代碼、名稱和價格。 輸出 is as 結論 總之,利用 SQLite 進行 .NET 數據庫管理提供了一個輕量化且多功能的解決方案。 本文探討了 SQLite 在 .NET 應用程序中的集成,展示了其關鍵功能和優勢。 提供的代碼展示了在 .NET 控制台應用程序中創建、連接和操作 SQLite 數據庫的實際步驟。 此外,還強調了 Microsoft.Data.Sqlite 和 Entity Framework Core 的使用,以便高效地處理數據。 IronPDF 的集成顯示了如何從 SQLite 數據庫中無縫生成 PDF 報告,增強了應用程序的報告和數據分發能力。 IronPDF 根據開發人員數量、地點、項目和再分發需求提供各種許可選項。 許可證是永久的,並包含一年的免費支持和更新。 常見問題解答 什麼是 SQLite,為什麼它在 .NET 開發中受歡迎? SQLite 是輕量且自足的關係型資料庫引擎,由於其速度、可靠性和跨平台能力廣泛用於 .NET 開發。它可嵌入在應用程式中,而無需單獨的服務器元件。 我可以如何將 SQLite 整合到我的 .NET 應用程式中? 您可以透過安裝 Microsoft.Data.Sqlite NuGet 套件將 SQLite 整合到您的 .NET 應用程式中。這個套件提供 ADO.NET 介面,讓您能在 Console、桌面、網頁或行動應用程式中創建、連接及操作 SQLite 資料庫。 如何在 C# 中創建和連接到 SQLite 資料庫? 要在 C# 中創建和連接到 SQLite 資料庫,使用 SqliteConnection 類來建立連接。然後您可以執行 SQL 命令,以使用 SqlCommand 物件創建表格並操作資料。 我可以在 .NET 中使用 LINQ 查詢來操作 SQLite 嗎? 可以,您可以在 .NET 中透過使用 Entity Framework Core 來操作 SQLite。這能實現物件關係映射,讓您能夠在 DbContext 類別的 DbSet 屬性上執行 LINQ 查詢。 如何從 SQLite 資料庫資料生成 PDF 報告? 您可以使用 IronPDF 從 SQLite 資料庫資料生成 PDF 報告。通過轉換資料的 HTML 表現形式或直接使用資料庫內容,您能夠創建詳細的 PDF 報告並利用 IronPDF 的渲染功能進行匯出。 如何解決 .NET 應用程式中的常見 SQLite 問題? 可以通過確保 Microsoft.Data.Sqlite 套件的正確安裝,檢查 SQL 語法和驗證連接字串來解決 .NET 應用程式中的常見 SQLite 問題。除錯工具和日誌也能幫助識別和解決錯誤。 如何在 .NET 專案中安裝和使用 PDF 庫? 要在 .NET 專案中安裝如 IronPDF 的 PDF 庫,可在套件管理器控制台中執行 Install-Package IronPdf。安裝後,IronPDF 可讓您使用其豐富的 API 來創建、編輯和閱讀 PDF 文件。 使用 SQLite 搭配 .NET 有哪些優勢? 使用 SQLite 與 .NET 提供了簡單性、無需獨立服務器、跨平台支持和可靠性能等優勢。它非常適合輕量應用程式,並且可以透過 Microsoft.Data.Sqlite 等庫輕鬆整合。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 更新日期 9月 4, 2025 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新日期 9月 4, 2025 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 更新日期 8月 5, 2025 C#開關模式匹配(對開發者來說是如何工作的) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 C# 雙問號(開發者的工作原理)Datatables .NET(開發者的工...