.NET 帮助 C# SQLite(开发者如何使用) Jacob Mellor 已更新:2025年7月28日 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 SQLite 简介 SQLite 是一个自包含、无服务器、零配置的数据库引擎,广泛用于包括桌面、网页和移动应用程序在内的各种应用程序中。 在本教程中,我们将深入探讨如何在 C# 中使用 SQLite。 通过简单且易于理解的示例,您将学习如何创建、管理和与 SQLite 数据库交互。 什么是 SQLite? SQLite 是一个轻量级且高效的数据库,将数据存储在一个文件中。与传统数据库不同,它不需要单独的服务器。 这使得它成为需要数据库但不需要完整数据库系统复杂性的应用程序的一个不错的选择。 Setting Up SQLite in C# 使用 NuGet 包管理器 要在 C# 项目中使用 SQLite,您需要安装必要的 SQLite 库。 这可以通过 NuGet 包管理器完成。 打开 Visual Studio 并创建一个新的控制台应用程序。 右键单击项目并选择"管理 NuGet 包"。 搜索"SQLite"并安装该包。 建立连接 连接字符串 连接字符串是一个指定数据源信息和连接方式的字符串。 在 SQLite 中,连接字符串通常看起来像这样: string connectionString = "Data Source=mydatabase.db;"; string connectionString = "Data Source=mydatabase.db;"; $vbLabelText $csharpLabel 连接对象 可以使用System.Data.SQLite命名空间创建一个连接对象。 using System.Data.SQLite; // Initialize a connection to the SQLite database var connection = new SQLiteConnection(connectionString); // Open the connection connection.Open(); using System.Data.SQLite; // Initialize a connection to the SQLite database var connection = new SQLiteConnection(connectionString); // Open the connection connection.Open(); $vbLabelText $csharpLabel 创建表 创建表 在使用任何数据库时,创建表是至关重要的。 以下是如何使用 SQLite 代码创建表的方法。 // SQL command to create a new table "person" string query = "CREATE TABLE IF NOT EXISTS person (id INTEGER PRIMARY KEY, name TEXT)"; // Create a command object with the SQL query and connection var command = new SQLiteCommand(query, connection); // Execute the command to create the table command.ExecuteNonQuery(); // SQL command to create a new table "person" string query = "CREATE TABLE IF NOT EXISTS person (id INTEGER PRIMARY KEY, name TEXT)"; // Create a command object with the SQL query and connection var command = new SQLiteCommand(query, connection); // Execute the command to create the table command.ExecuteNonQuery(); $vbLabelText $csharpLabel Id Integer Primary Key: 将 'id' 列设置为主键。 表名: 您想要为数据库表命名的名称。 插入数据 插入行 要向表中插入数据,您需要使用 INSERT 命令。 // SQL command to insert a new row into the "person" table string query = "INSERT INTO person (name) VALUES ('John')"; var command = new SQLiteCommand(query, connection); command.ExecuteNonQuery(); // SQL command to insert a new row into the "person" table string query = "INSERT INTO person (name) VALUES ('John')"; var command = new SQLiteCommand(query, connection); command.ExecuteNonQuery(); $vbLabelText $csharpLabel 参数化命令 参数化命令可以保护您的应用程序免受 SQL 注入攻击。 这种方法使用参数而不是直接在查询中插入值。 // SQL command with a parameter to insert data safely string query = "INSERT INTO person (name) VALUES (@name)"; var command = new SQLiteCommand(query, connection); command.Parameters.AddWithValue("@name", "Iron Developer"); command.ExecuteNonQuery(); // SQL command with a parameter to insert data safely string query = "INSERT INTO person (name) VALUES (@name)"; var command = new SQLiteCommand(query, connection); command.Parameters.AddWithValue("@name", "Iron Developer"); command.ExecuteNonQuery(); $vbLabelText $csharpLabel 检索数据 选择语句 要从数据库表中检索数据,请使用 SELECT 语句。 // SQL command to select all rows from the "person" table string query = "SELECT * FROM person"; var command = new SQLiteCommand(query, connection); var reader = command.ExecuteReader(); // Loop through the result set and read data while (reader.Read()) { Console.WriteLine(reader["name"]); } // SQL command to select all rows from the "person" table string query = "SELECT * FROM person"; var command = new SQLiteCommand(query, connection); var reader = command.ExecuteReader(); // Loop through the result set and read data while (reader.Read()) { Console.WriteLine(reader["name"]); } $vbLabelText $csharpLabel 高级功能 SQLite 事务 事务允许您在单个原子操作中执行多个操作。 以下是如何使用事务的方法: var transaction = connection.BeginTransaction(); try { // Example of multiple operations in a transaction var insertCommand = new SQLiteCommand("INSERT INTO person (name) VALUES ('Alice')", connection, transaction); insertCommand.ExecuteNonQuery(); var updateCommand = new SQLiteCommand("UPDATE person SET name = 'Bob' WHERE name = 'Alice'", connection, transaction); updateCommand.ExecuteNonQuery(); transaction.Commit(); // Commit the transaction if all operations succeed } catch { transaction.Rollback(); // Rollback the transaction if any operation fails } var transaction = connection.BeginTransaction(); try { // Example of multiple operations in a transaction var insertCommand = new SQLiteCommand("INSERT INTO person (name) VALUES ('Alice')", connection, transaction); insertCommand.ExecuteNonQuery(); var updateCommand = new SQLiteCommand("UPDATE person SET name = 'Bob' WHERE name = 'Alice'", connection, transaction); updateCommand.ExecuteNonQuery(); transaction.Commit(); // Commit the transaction if all operations succeed } catch { transaction.Rollback(); // Rollback the transaction if any operation fails } $vbLabelText $csharpLabel 使用Entity Framework进行对象关系映射 (ORM) Entity Framework (EF) 是 .NET 生态系统中广泛使用的 ORM 工具。 它通过允许开发人员使用特定领域的对象来处理关系数据,简化数据库编程。 以下是如何将 Entity Framework 与 SQLite 一起使用的方法。 1. 安装 Entity Framework 首先,确保您已经安装了针对 SQLite 的 Entity Framework NuGet 包: 在 Visual Studio 中打开 NuGet 包管理器。 搜索"Entity Framework SQLite"并安装它。 2. 创建实体类 实体类是数据库表的表示。 您可以为每个您打算交互的表创建一个类。 public class Person { public int Id { get; set; } // Primary Key public string Name { get; set; } } public class Person { public int Id { get; set; } // Primary Key public string Name { get; set; } } $vbLabelText $csharpLabel 3. DbContext 您需要创建一个从DbContext继承的类。 此类表示与数据库的会话,并允许您查询和保存实体的实例。 using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<Person> Persons { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=mydatabase.db;"); } } using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<Person> Persons { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=mydatabase.db;"); } } $vbLabelText $csharpLabel 4. CRUD 操作 Entity Framework 简化了创建、读取、更新和删除(CRUD)操作。 以下是如何插入新记录: using (var db = new MyDbContext()) { db.Persons.Add(new Person { Name = "John" }); db.SaveChanges(); } using (var db = new MyDbContext()) { db.Persons.Add(new Person { Name = "John" }); db.SaveChanges(); } $vbLabelText $csharpLabel 读取、更新和删除记录同样通过 Entity Framework 简化,使得代码简单易维护。 使用 XML 文件和其他数据提供程序 SQLite 不仅限于关系数据; 它还在处理其他数据类型方面提供灵活性,包括 XML 文件。 1. 存储 XML 数据 您可以在 SQLite 数据库中存储 XML 数据。 如果您处理配置数据或其他层次结构,这可能会很有用。 string xmlData = "<person><name>John</name></person>"; string query = "INSERT INTO xmltable (data) VALUES (@data)"; var command = new SQLiteCommand(query, connection); command.Parameters.AddWithValue("@data", xmlData); command.ExecuteNonQuery(); string xmlData = "<person><name>John</name></person>"; string query = "INSERT INTO xmltable (data) VALUES (@data)"; var command = new SQLiteCommand(query, connection); command.Parameters.AddWithValue("@data", xmlData); command.ExecuteNonQuery(); $vbLabelText $csharpLabel 检索 XML 数据 您可以使用标准的 XML 解析技术在 C# 中检索和处理 XML 数据。 string query = "SELECT data FROM xmltable WHERE id = 1"; var command = new SQLiteCommand(query, connection); var reader = command.ExecuteReader(); string xmlData; // Read the XML data from the query result if (reader.Read()) { xmlData = reader["data"].ToString(); } // Parse the XML data as needed using an XML parser string query = "SELECT data FROM xmltable WHERE id = 1"; var command = new SQLiteCommand(query, connection); var reader = command.ExecuteReader(); string xmlData; // Read the XML data from the query result if (reader.Read()) { xmlData = reader["data"].ToString(); } // Parse the XML data as needed using an XML parser $vbLabelText $csharpLabel 使用其他数据提供程序 SQLite 还可以与各种数据提供程序很好地集成,实现兼容性和灵活性。 这意味着您可以在单个应用程序中无缝地在不同的数据库之间切换,甚至结合不同的数据源。 介绍 Iron Suite:强大的库套件 在探索了 SQLite 和 C# 中的逻辑操作符之后,是时候介绍一组杰出的工具了,这些工具可以在 .NET 环境中补充和增强开发体验。 Iron Suite 是一组强大的库,包括 IronPDF、IronXL、IronOCR 和 IronBarcode,每一个都有不同的用途。 IronPDF:C# PDF 库 IronPDF 综合指南 是一个设计用于创建、读取和操作 C# 中的 PDF 文件的综合库。 无论您是需要生成报告、发票,还是任何 PDF 格式的文件,IronPDF 都能满足您的需求。 IronPDF 的一个独特功能是能够将 HTML 转换为 PDF。 您可以将 HTML 渲染为 PDF 文档,包括 CSS、JavaScript 和图像,使其成为一个强大的工具。 查看关于 使用 IronPDF 将 HTML 转换为 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"); } } $vbLabelText $csharpLabel 在处理 SQLite 数据库时,IronPDF 可能是一个重要工具。 您可以从 SQLite 数据库数据中生成 PDF 报告,实现无缝的数据展示和共享。 IronXL:轻松实现 Excel 文件管理 探索 IronXL 的 Excel 集成,使开发人员可以轻松地读取、编写和操作 Excel 文件。 它兼容 XLS、XLSX 等格式,是处理电子表格数据的理想工具。 您可以读取 Excel 文件,操作它们,甚至从头开始创建新文件。 IronXL 的功能与数据库管理(包括 SQLite)很好地集成,用于导出和导入数据。 IronOCR: Optical Character Recognition in C# 借助 IronOCR 进行文本识别,从图像和 PDF 文件中扫描文本变得非常简单。 这是一个多功能的 OCR(光学字符识别)库,可以识别来自各种来源的文本。 想象一下,将扫描的文档存储在 SQLite 数据库中,并使用 IronOCR 来检索和识别这些文档中的文本。 这种可能性是无限的,提供了强大的文本检索和搜索功能。 IronBarcode:终极条码生成和读取库 通过 IronBarcode 强大的条码集成,条码的生成和读取变得简单。 它支持多种条码格式,并为所有条码相关需求提供了一个强大的 API。 IronBarcode 可以在使用 SQLite 的应用程序中发挥重要作用,条码可能代表产品或其他数据实体。 从 SQLite 数据库中存储和检索条码,增强数据的完整性并促使快速访问。 结论 SQLite 是一个功能强大且轻量级的数据库引擎,非常适合初学者和专业人士。从创建表和插入行到管理事务和防止 SQL 注入攻击,SQLite 提供了许多功能。 无论您是构建控制台还是移动应用程序,或者需要处理外键和数据集,SQLite 都是一个不错的选择。 包含 IronPDF、IronXL、IronOCR 和 IronBarcode 的 Iron Suite 是一组工具的宝库,可以扩展您 C# 开发项目的能力,无论您是在与 SQLite 数据库一起工作还是在其他领域。 更吸引人的是,这些产品中的每一个都提供Iron Software产品的免费试用,让您有充足的时间探索和了解它们所提供的广泛功能。 一旦您决定继续使用这些工具,许可费用从每个产品的$799开始。 您还可以以仅两个独立产品的价格购买完整的 Iron Suite 套装。 常见问题解答 如何在C#项目中使用NuGet设置SQLite? 要在C#项目中使用NuGet设置SQLite,打开Visual Studio并创建一个新的控制台应用程序。访问NuGet包管理器,搜索'SQLite'并安装该包。这将SQLite库集成到您的项目中进行数据库操作。 使用SQLite为C#应用程序带来哪些好处? SQLite是一个轻量级的无服务器数据库引擎,将数据存储在一个文件中,使其成为需要简单高效数据库解决方案而无需传统数据库系统复杂性的应用程序的理想选择。 如何在C#中连接SQLite数据库? 您可以通过创建一个类似Data Source=mydatabase.db;的连接字符串以及使用System.Data.SQLite命名空间中的SQLiteConnection类来建立和打开连接。 如何在使用C#的SQLite数据库上进行CRUD操作? 使用SQL命令如INSERT,SELECT,UPDATE和DELETE,可以在C#中对SQLite数据库执行CRUD操作。这些命令可以通过SQLiteCommand对象执行。 事务在SQLite中起什么作用? SQLite中的事务允许以单个原子操作执行多个操作。您可以使用connection.BeginTransaction()开始一个事务,执行必要的操作,然后根据结果提交或回滚事务。 如何在C#项目中使用SQLite的Entity Framework? 要使用Entity Framework与SQLite,在NuGet中安装必要的Entity Framework包,定义您的实体类,并创建一个DbContext类。这种设置允许对象关系映射,简化C#项目中的数据库交互。 如何使用C#从数据库数据生成PDF文档? 使用IronPDF,您可以通过将HTML转换为PDF在C#中从数据库数据生成PDF文档。这允许您从存储在SQLite数据库中的数据创建格式良好的PDF报告。 哪些工具可以增强C#开发的数据库应用程序? Iron Suite,其中包括像IronPDF、IronXL、IronOCR和IronBarcode这样的工具,通过提供PDF创建、Excel文件操作、文本识别和条形码生成等功能来增强C#开发的数据库应用。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。Jacob 拥有曼彻斯特大学土木工程一级荣誉工程学士学位(BEng)(1998-2001 年)。他的旗舰产品 IronPDF 和 Iron Suite for .NET 库在全球的 NuGet 安装量已超过 3000 万次,其基础代码继续为全球使用的开发人员工具提供动力。Jacob 拥有 25 年的商业经验和 41 年的编码专业知识,他一直专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新2025年12月20日 C# String Equals(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 Signalr C#(开发者如何使用)C# Web 应用(开发者使用)
已更新2026年2月20日 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新2025年12月20日 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多