.NET 帮助

C# SQLite(开发人员如何使用)

发布 2023年十一月14日
分享:

SQLite 简介

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

什么是 SQLite?

SQLite 是一种轻量级的高效数据库,可将数据存储在单个文件中。与传统数据库不同,它不需要单独的服务器。 因此,对于需要数据库而又不需要复杂的完整数据库系统的应用程序来说,这是一个不错的选择。

在 C# 中设置 SQLite;

使用 NuGet 软件包管理器

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

  1. 打开 Visual Studio 并创建一个新的控制台应用程序。

  2. 右键单击项目,选择 "管理 NuGet 包"。

  3. 搜索 "SQLite "并安装软件包。

建立联系

连接字符串

连接字符串是一个字符串,用于指定有关数据源的信息以及连接到数据源的方式。 在 SQLite 中,连接字符串通常如下所示:

string connectionString = "Data Source=mydatabase.db;";
string connectionString = "Data Source=mydatabase.db;";
Dim connectionString As String = "Data Source=mydatabase.db;"
VB   C#

连接对象

您可以使用 new SQLiteConnection 数据源创建连接对象。

using SQLite;
var connection = new SQLiteConnection(connectionString);
using SQLite;
var connection = new SQLiteConnection(connectionString);
Imports SQLite
Private connection = New SQLiteConnection(connectionString)
VB   C#

创建表格

创建表格

创建表格是使用任何数据库的基础。 以下是使用 SQLite 代码创建表格的方法。

string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#
  • Id 整数主键: 设置 "id "列为主键。
  • 表名: 您要为数据库表命名的名称。

插入数据

插入行

要向表格中插入数据,您需要使用 INSERT 命令。

string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES ('John')"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#

参数化命令

参数化命令可保护您的应用程序免受 SQL 注入攻击。 这种方法使用参数,而不是直接在查询中插入值。

string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES (@name)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@name", "Iron Developer")
command.ExecuteNonQuery()
VB   C#

检索数据

选择声明

要从数据库表中检索数据,请使用 SELECT 语句。

string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
Dim query As String = "SELECT * FROM person"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Do While reader.Read()
	Console.WriteLine(reader ("name"))
Loop
VB   C#

高级功能

SQLite 事务

事务允许您在单个原子操作中执行多个操作。 以下是如何使用交易:

var transaction = connection.BeginTransaction();
try
{
    // Multiple insert, update, or delete operations
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
var transaction = connection.BeginTransaction();
try
{
    // Multiple insert, update, or delete operations
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
Dim transaction = connection.BeginTransaction()
Try
	' Multiple insert, update, or delete operations
	transaction.Commit()
Catch
	transaction.Rollback()
End Try
VB   C#

使用实体框架的对象关系映射 (ORM)

实体框架(EF)是 .NET 生态系统中广泛使用的 ORM 工具。 它允许开发人员使用特定域对象处理关系数据,从而简化了数据库编程。 以下是如何将 Entity Framework 与 SQLite 结合使用。

1.安装实体框架

首先,确保您已安装 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; }
}
public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}
Public Class Person
	Public Property Id() As Integer ' -  Primary Key
	Public Property Name() As String
End Class
VB   C#

3.DbContext

您需要创建一个继承自 DbContext的类。 该类表示与数据库的会话,允许您查询和保存实体的实例。

public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
Public Class MyDbContext
	Inherits DbContext

	Public Property Persons() As DbSet(Of Person)

	Protected Overrides Sub OnConfiguring(ByVal optionsBuilder As DbContextOptionsBuilder)
		optionsBuilder.UseSqlite("Data Source=mydatabase.db;")
	End Sub
End Class
VB   C#

4.CRUD 操作

实体框架简化了创建、读取、更新和删除操作(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();
}
Using db = New MyDbContext()
	db.Persons.Add(New Person With {.Name = "John"})
	db.SaveChanges()
End Using
VB   C#

使用 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();
Dim xmlData As String = "<person><name>John</name></person>"
Dim query As String = "INSERT INTO xmltable (data) VALUES (@data)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@data", xmlData)
command.ExecuteNonQuery()
VB   C#

检索 XML 数据

您可以使用 C# 中的标准 XML 解析技术检索和处理 XML 数据。

string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

// Parse the XML data as needed
string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

// Parse the XML data as needed
Dim query As String = "SELECT data FROM xmltable WHERE id = 1"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Dim xmlData As String = reader ("data").ToString()

' Parse the XML data as needed
VB   C#

与其他数据提供商合作

SQLite 还能与各种数据提供商很好地集成,从而实现互操作性和灵活性。 这意味着您可以在不同的数据库之间无缝切换,甚至可以在一个应用程序中结合不同的数据源。

介绍 Iron Suite:一套功能强大的库

在探索了 C# 中的 SQLite 和逻辑运算符领域之后,是时候介绍一系列出色的工具了,它们补充并增强了 .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 的功能在翻译过程中,".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#

在使用 SQLite 数据库时,IronPdf 是必不可少的工具。 您可以从 SQLite 数据库数据生成 PDF 报告,从而实现无缝数据展示和共享。

IronXL:轻松管理Excel文件

探索IronXL for Excel 集成该翻译必须保持专业性,在保持技术准确性的同时,解释这些开发工具的功能和优点。 它与 XLS、XLSX 等兼容,是处理电子表格数据的理想工具。 您可以读取 Excel 文件,对其进行操作,甚至从头开始创建新文件。 IronXL 的功能与数据库管理(包括 SQLite)集成得很好,可以导出和导入数据。

IronOCR: C&num 中的光学字符识别;

用于文本识别的 IronOCR此外,从图像和 PDF 文件中扫描文本是一件轻而易举的事情。 多功能 OCR(光学字符识别)翻译人员需要使用一个能识别各种来源文本的库。

想象一下将扫描文档存储在 SQLite 数据库中,然后使用 IronOCR 来检索和识别这些文档中的文本。 提供强大的文本检索和搜索功能的可能性是无限的。

IronBarcode:终极条码生成和读取库

条形码的生成和读取通过以下工具变得简单通过 IronBarcode 实现功能强大的条形码集成. 它支持多种条形码格式,并为所有条形码相关需求提供强大的 API。 IronBarcode 可在使用 SQLite 的应用程序中发挥重要作用,其中条形码可能代表产品或其他数据实体。 从 SQLite 数据库中存储和检索 BarCode 可增强数据完整性并方便快速访问。

结论

SQLite 是一个功能强大而又轻便的数据库引擎,对初学者和专业人员都非常适合。从创建表格和插入行到管理事务和防止 SQL 注入攻击,SQLite 提供了许多功能。 无论您是要构建控制台或移动应用程序,还是需要处理外键和数据集,SQLite 都是您的最佳选择。

由 IronPDF、IronXL、IronOCR 和 IronBarcode 组成的 Iron Suit 是一个工具宝库,可以扩展 C# 开发项目的功能,无论您是使用 SQLite 数据库还是其他任何领域。

更吸引人的是,每种产品都能提供免费试用 Iron Software 产品此外,翻译还必须让您有充足的时间探索和理解这些工具所提供的大量功能。一旦您决定继续使用这些工具,每个产品的许可费用从 $749 起。 您还可以仅用两个单个产品的价格购买完整的 Iron Suite 捆绑产品。

< 前一页
Signalr C#(开发人员的工作原理)
下一步 >
C#网络应用程序(开发人员如何使用)

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 11,781,565 查看许可证 >