.NET 幫助

C# SQLite(開發者如何使用)

發佈 2023年11月14日
分享:

SQLite 簡介

SQLite 是一個自包含、無伺服器且零配置的資料庫引擎,廣泛應用於桌面、網路和移動應用程式中。在本教學中,我們將深入探討如何在 C# 中使用 SQLite。通過簡單且易於理解的範例,您將學習如何建立、管理和與 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#

Connection Object

您可以使用 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 Integer Primary Key: 將 'id' 欄位設置為主鍵。
  • Table Name: 您希望給數據庫表格起的名稱。

插入資料

插入行

要將數據插入表格,您需要使用 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 Statement

要從資料庫表格中檢索資料,請使用 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) 與 Entity Framework

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; }
}
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 操作

Entity Framework 簡化了創建(Create)、讀取(Read)、更新(Update)和刪除(Delete) (增刪改查) 操作。以下是如何插入一條新紀錄:

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 Suit 強大的函式庫集

在探索了 SQLite 和 C# 中的邏輯運算符之後,是時候介紹一組出色的工具了,這些工具在 .NET 環境中補充和增強了開發體驗。Iron Suit 是一組強大的函式庫,包含 IronPDF、IronXL、IronOCR 和 IronBarcode,每個都起著不同的作用。

IronPDF:C# PDF 程式庫

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# 中的光學字符識別

IronOCR, 從影像和PDF檔案掃描文字變得輕而易舉。這是一個多功能的OCR (光學字符識別) 來自各種來源的識別文字庫。

想像將掃描的文件存儲在SQLite數據庫中,並使用IronOCR檢索和識別這些文件中的文字。可能性無窮,提供強大的文字檢索和搜索功能。

IronBarcode: 終極條碼生成和讀取庫

條碼生成和讀取變得簡單與 IronBarcode它支持多種條碼格式,並提供一個堅固的API來滿足所有條碼相關的需求。IronBarcode在使用SQLite的應用程式中可以發揮重要作用,條碼可能代表產品或其他數據實體。從SQLite數據庫中儲存和檢索條碼能增強數據完整性並便於快速訪問。

結論

SQLite 是一個強大而輕量級的資料庫引擎,無論是初學者還是專業人士都非常適合使用。從建立表格和插入行到管理交易和防止 SQL 注入攻擊,SQLite 提供了許多功能。無論您是構建控制台應用程式或移動應用程式,還是需要使用外鍵和數據集,SQLite 都是一個極佳的選擇。

Iron Suite,包括 IronPDF、IronXL、IronOCR 和 IronBarcode,是一組寶庫工具,擴展了您的 C# 開發專案的能力,無論您的專案是與 SQLite 資料庫還是其他領域相關。

更有吸引力的是,每一個這些產品都提供了 免費試用,讓您有充分的時間來探索並了解它們提供的各種功能。一旦您決定繼續使用這些工具,授權費用將從每個產品的$Lite License起。您也可以以兩個單獨產品的價格購買完整的Iron Suite套裝。

< 上一頁
SignalR C#(這對開發人員如何運作)
下一個 >
C# 網頁應用程式(適用於開發人員的工作方式)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >