IRONSOFTWAREHOME
开发者更新

C# SQLite(开发者如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月23日

SQLite 简介

SQLite 是一个自包含、无服务器、零配置的数据库引擎,广泛用于包括桌面、网页和移动应用程序在内的各种应用程序中。 在本教程中,我们将深入探讨如何在 C# 中使用 SQLite。 通过简单且易于理解的示例,您将学习如何创建、管理和与 SQLite 数据库交互。

什么是 SQLite?

SQLite 是一个轻量级且高效的数据库,将数据存储在一个文件中。与传统数据库不同,它不需要单独的服务器。 这使得它成为需要数据库但不需要完整数据库系统复杂性的应用程序的一个不错的选择。

Setting Up SQLite in C#

使用 NuGet 包管理器

要在 C# 项目中使用 SQLite,您需要安装必要的 SQLite 库。 这可以通过 NuGet 包管理器完成。

  1. 打开 Visual Studio 并创建一个新的控制台应用程序。
  2. 右键单击项目并选择"管理 NuGet 包"。
  3. 搜索"SQLite"并安装该包。

建立连接

连接字符串

连接字符串是一个指定数据源信息和连接方式的字符串。 在 SQLite 中,连接字符串通常看起来像这样:

string connectionString = "Data Source=mydatabase.db;";

连接对象

您可以使用System.Data.SQLite命名空间创建一个连接对象。

using System.Data.SQLite;

// Initialize a connection to the SQLite database
var connection = new SQLiteConnection(connectionString);

// Open the connection
connection.Open();

创建表

创建表

在使用任何数据库时,创建表是至关重要的。 以下是如何使用 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();
  • 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 注入攻击。 这种方法使用参数而不是直接在查询中插入值。

// 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();

检索数据

选择语句

要从数据库表中检索数据,请使用 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"]);
}

高级功能

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
}

使用Entity Framework进行对象关系映射 (ORM)

Entity Framework (EF) 是 .NET 生态系统中广泛使用的 ORM 工具。 它通过允许开发人员使用特定领域的对象来处理关系数据,简化数据库编程。 以下是如何将 Entity Framework 与 SQLite 一起使用的方法。

1. 安装 Entity Framework

首先,确保您已经安装了针对 SQLite 的 Entity Framework NuGet 包:

  1. 在 Visual Studio 中打开 NuGet 包管理器。
  2. 搜索"Entity Framework SQLite"并安装它。

2. 创建实体类

实体类是数据库表的表示。 您可以为每个您打算交互的表创建一个类。

public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}

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;");
    }
}

4. CRUD 操作

Entity Framework 简化了创建、读取、更新和删除(CRUD)操作。 以下是如何插入新记录:

using (var db = new MyDbContext())
{
    db.Persons.Add(new Person { Name = "John" });
    db.SaveChanges();
}

读取、更新和删除记录同样通过 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();

检索 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

使用其他数据提供程序

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");
    }
}

在处理 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产品的免费试用,让您有充足的时间去探索和了解它们提供的广泛功能。一旦您决定继续使用这些工具,许可证费用从每个产品的$999开始。 您还可以以仅两个独立产品的价格购买完整的 Iron Suite 套装。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起