.NET 帮助 Sqlite C# .NET(开发者如何使用) Curtis Chau 已更新:六月 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 库 创建数据库并插入数据 使用读取器读取 使用实体框架和 LINQ 查询方法使用 SQLite 使用 IronPDF 生成 PDF 报告 什么是 SQLite? SQLite 是一个流行的开源数据库引擎,可以嵌入到应用程序中,无需单独的服务器组件。 它快速、可靠且跨平台。 通过各种提供 ADO.NET 接口的库,可以在 .NET 项目应用中使用 SQLite。 其中一个库是 Microsoft.Data.SQLite。 这使你能够在 .NET 应用程序中使用 SQLite 作为数据源,无论它们是控制台、桌面、Web 或移动应用。你还可以使用实体框架核心执行对象关系映射,并使用 LINQ 查询你的 SQLite 数据库。 本文向你展示如何使用 Microsoft.Data.Sqlite 开发、连接和操作 .NET 控制台应用中的 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 $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 数据库,则可以使用实体框架核心将表映射到类并使用 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 文件。它使用实体框架核心库来与数据库交互。 最初,它配置 DbContextOptionsBuilder 以使用特定连接字符串的 SQLite。 然后代码构造了包含嵌入表外观 CSS 样式的 HTML 字符串,创建了具有头部的表结构,查询 SQLite 数据库以获取股票信息,并使用检索到的数据填充 HTML 表,最后利用基于 Chrome 的 PDF 渲染器将 HTML 内容转换为名为 "stock.pdf" 的 PDF 文件。生成的 PDF 将包含一张显示股票符号、名称和价格的表格。 输出 is as 结论 总之,在 .NET 中利用 SQLite 进行数据库管理提供了一种轻量且多功能的解决方案。 本文探讨了 SQLite 在 .NET 应用程序中的集成,展示了其关键特性和优势。 提供的代码演示了在 .NET 控制台应用中创建、连接和操作 SQLite 数据库的实际步骤。 此外,还强调了 Microsoft.Data.Sqlite 和实体框架核心在高效数据处理中的应用。 IronPDF 的集成展示了如何无缝地从 SQLite 数据库 生成 PDF 报告,增强应用程序在报告和数据分发方面的能力。 IronPDF 提供了多种 许可选项,取决于开发人员数量、地点、项目和再分发需求。 许可证是永久的,并包括一年的免费支持和更新。 常见问题解答 什么是 SQLite,为什么它在 .NET 开发中非常受欢迎? SQLite 是一个轻量级和独立的关系型数据库引擎,由于其速度、可靠性和跨平台能力,它在 .NET 开发中被广泛使用。它可以嵌入在应用程序中,而不需要单独的服务器组件。 如何将 SQLite 集成到我的 .NET 应用程序中? 您可以通过安装 Microsoft.Data.Sqlite NuGet 包将 SQLite 集成到您的 .NET 应用程序中。这提供了 ADO.NET 接口,允许您在控制台、桌面、Web 或移动应用中创建、连接和操作 SQLite 数据库。 如何在 C# 中创建和连接 SQLite 数据库? 要在 C# 中创建和连接 SQLite 数据库,使用 SqliteConnection 类建立连接。然后您可以执行 SQL 命令,通过 SqlCommand 对象创建表格和操作数据。 我可以在 .NET 中使用 LINQ 查询 SQLite 吗? 是的,您可以通过使用 Entity Framework Core 在 .NET 中对 SQLite 使用 LINQ 查询。这允许对象关系映射,使您能够在 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 文件。 在 .NET 中使用 SQLite 的优点是什么? 在 .NET 中使用 SQLite 的优点包括简单性、无需单独的服务器、跨平台支持和可靠的性能。它非常适合于轻量级应用程序,并且可以通过像 Microsoft.Data.Sqlite 这样的库轻松集成。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新九月 4, 2025 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 C# 双问号(开发者如何使用)Datatables .NET(开发者如何...
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多