.NET 幫助

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

發佈 2023年11月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) 與 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 簡化了建立、讀取、更新和刪除操作。(增刪改查)運作。 以下是您可以插入新記錄的方法:

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:一套強大的程式庫集

在探索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");
    }
}
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 用於 Excel 整合使開發人員能夠輕鬆讀取、寫入和操作 Excel 文件。 它兼容XLS、XLSX等格式,是處理電子表格數據的理想工具。 您可以讀取 Excel 文件,對其進行操作,甚至從頭開始創建新文件。 IronXL 的功能可以很好地與資料庫管理整合,包括 SQLite,用於匯出和匯入資料。

IronOCR:C#中的光學字符識別

IronOCR 文字識別專用從圖像和 PDF 文件掃描文本變得輕而易舉。 這是一個多功能的OCR(光學字符識別)可以從各種來源辨識文字的程式庫。

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

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

使用IronBarcode,使條碼生成和讀取變得簡單透過 IronBarcode 進行強大的條碼整合. 它支持多種條碼格式,並為所有與條碼相關的需求提供強大的 API。 IronBarcode 在使用 SQLite 的應用程式中可以發揮重要作用,其中條碼可能代表產品或其他數據實體。 將條碼存儲和檢索在SQLite資料庫中可以增強數據完整性並促進快速訪問。

結論

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

Iron Suite 包括 IronPDF、IronXL、IronOCR 和 IronBarcode,是工具的寶庫,能夠擴展您的 C# 開發專案的功能,無論您是使用 SQLite 資料庫還是其他領域。

更具吸引力的是,每一款產品都提供Iron Software 產品的免費試用版,讓您有充足的時間探索和了解他們提供的各種功能。一旦您決定繼續使用這些工具,授權從每個產品的 $749 開始。 您也可以以兩個獨立產品的價格購買完整的 Iron Suite 捆綁包。

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

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

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >