.NET 帮助

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

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

SQLite 简介

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

什么是 SQLite?

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

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

介绍钢铁战衣 一套功能强大的图书馆

在探索了 C# 中的 SQLite 和逻辑运算符领域之后,现在是时候介绍一组出色的工具,它们补充并增强了.NET 环境中的开发体验。Iron Suit 是一系列功能强大的库,包括 IronPDF、IronXL、IronOCR 和 IronBarcode,每个库都有不同的用途。

IronPDF:C# PDF Library

IronPDF 是一个综合库,旨在用 C# 创建、读取和处理 PDF 文件。无论您需要生成报告、发票还是任何 PDF 格式的文档,IronPDF 都能满足您的需求。IronPDF 的一个独特功能是将 HTML 转换为 PDF。您可以将 HTML 呈现为 PDF 文档,包括 CSS、JavaScript 和图像,使其成为一款强大的工具。查看本教程 如何将 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");
    }
}
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 是使用 SQLite 数据库时必不可少的工具。您可以从 SQLite 数据库数据生成 PDF 报告,从而实现无缝数据展示和共享。

IronXL:轻松管理 Excel 文件

IronXL 允许开发人员毫不费力地读取、写入和处理 Excel 文件。它兼容 XLS、XLSX 等文件,是处理电子表格数据的理想工具。你可以读取 Excel 文件,对其进行操作,甚至从头开始创建新文件。IronXL 的功能与数据库管理(包括 SQLite)集成得很好,可以导出和导入数据。

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

使用 IronOCR现在,扫描图像和 PDF 文件中的文本变得轻而易举。它是一款多功能 OCR (光学字符识别) 可识别各种来源文本的图书馆。

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

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

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

结论

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

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

更吸引人的是,每个产品都提供了 免费试用,让您有充足的时间探索和了解它们提供的大量功能。一旦您决定继续使用这些工具,每个产品的许可起价为 $749。您还可以购买完整的 Iron Suit 套装,价格仅为两个单个产品的价格。

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

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

免费NuGet下载 总下载量: 10,731,156 查看许可证 >