.NET 帮助

Sqlite C# .NET(开发者如何使用)

发布 2024年一月14日
分享:

SQLite是一种流行的、轻量级的、独立的关系数据库引擎,广泛应用于各种数据访问应用程序和环境平台。 在 .NET 开发中,SQLite 源代码是将可靠的数据库解决方案控件集成到系统应用程序中的绝佳选择。 本文将深入探讨 SQLite 事务的世界,探讨其功能、优势以及如何在 .NET 项目中有效使用。

如何在 C# 中使用 SQLite;

  1. 下载 SQLite 库

  2. 创建数据库并插入数据

  3. 使用阅读器阅读

  4. 使用实体框架和 LINQ 查询方法使用 SQLite

  5. 使用以下工具生成 PDF 报告IronPDF

什么是 SQLite?

SQLite 是一种流行的开源数据库引擎,可以嵌入到应用程序中,无需单独的服务器组件。 它快速、可靠、跨平台。 SQLite 可通过提供 ADO.NET 接口的各种库与 .NET 项目应用程序一起使用。 其中一个库是Microsoft.Data.SQLite. 这样,您就可以将 SQLite 用作 .NET 应用程序的数据源,无论是控制台、桌面、Web 还是移动应用程序。您还可以使用 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 语句。 例如,以下代码在雇员表中插入了三行。

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 方法获取相应数据类型的值。 例如,以下代码读取雇员表中的所有行,并将其打印到控制台:

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#

要查询数据,您可以在 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
VB   C#

假设我们需要创建一个包含股票列表的 PDF 文件。 通过 IronPDF,我们可以轻松做到这一点。

介绍IronPDF

IronPDF 是一个库,可帮助您在.NET 应用程序中创建、编辑和读取 PDF 文件,而无需使用多个软件包。 它可以从 HTML、URL、JavaScript、CSS 和多种图像格式生成 PDF,还可以添加页眉、页脚、签名、附件和密码。 它还支持跨平台兼容性、多线程和异步支持。

IronPDF 的HTML 到 PDF 的功能在翻译过程中,".NET "和 "Python "是其主要亮点,保留了所有布局和样式。 它可以根据网页内容生成 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,781,565 查看许可证 >