首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

C# 操作 SQLite 資料庫完整實戰指南

     編輯:更多程式設計知識

SQLite 是一款輕量級、零設定、無伺服器程序的關聯式資料庫引擎,廣泛應用於行動應用、桌面軟體、嵌入式系統。本文從安裝、常用指令、管理工具到 C# 實戰範例,完整帶你上手 SQLite 開發。

SQLite 特色與適用場景

  • 零設定:無需安裝、啟動服務,直接操作單一資料庫檔案(`.db`、`.sqlite`)。
  • 跨平台:單一檔案可在 Windows、Linux、macOS、Android、iOS 間直接複製使用。
  • 標準 SQL 支援:支援大部分 SQL-92 標準。
  • 適用場景:行動 App 本地儲存、中小型桌面應用、網站低流量資料庫、測試開發環境。

常用 SQLite 指令速查

功能指令
顯示表結構.schema [table]
列出所有表/視圖.tables
顯示指定表索引.indices [table]
匯出資料庫至 SQL 檔.output filename.sql → .dump → .output stdout
從 SQL 檔匯入.read filename.sql
匯出 CSV.output file.csv → .separator , → select * from table → .output stdout
從 CSV 匯入.import file.csv table_name
備份資料庫sqlite3 dbfile.db .dump > backup.sql
還原資料庫sqlite3 dbfile.db < backup.sql

安裝與環境設定

  1. 至 官網 下載 `sqlite-shell-win32-x86-*.zip`(或對應平台版本)。
  2. 解壓縮至任意資料夾(如 `E:\Tools\sqlite`)。
  3. 將該資料夾路徑加入系統環境變數 `Path`。
  4. 開啟 CMD 輸入 `sqlite3`,出現版本資訊即安裝成功。

基本資料庫操作

> sqlite3 mydb.db          # 開啟/建立資料庫
> .databases               # 查看附加的資料庫
> CREATE TABLE hero (hero_id INT PRIMARY KEY, hero_name NVARCHAR(10));
> INSERT INTO hero VALUES (1, '薩滿');
> SELECT * FROM hero;
> .quit

圖形化管理工具推薦:SQLiteSpy

官網:SQLiteSpy,綠色免安裝,介面類似 SSMS,支援建表、查詢、編輯資料,操作直覺。

C# 實戰:使用 System.Data.SQLite

  1. NuGet 安裝套件:`Install-Package System.Data.SQLite`(或官網下載對應 .NET Framework 版本 DLL)。
  2. 引用命名空間:`using System.Data.SQLite;`
  3. 連線字串簡單:`Data Source=E:/database/sqlite/arena.db`

完整 CRUD 範例

using System;
using System.Data.SQLite;

namespace ConsoleApp
{
    class Program
    {
        static readonly string DB_PATH = "Data Source=E:/database/sqlite/arena.db";

        static void Main(string[] args)
        {
            Insert();
            Select();
            Update();
            Select();
            Delete();
        }

        static void Select()
        {
            using (var con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sql = "SELECT * FROM hero";
                using (var cmd = new SQLiteCommand(sql, con))
                using (var dr = cmd.ExecuteReader())
                {
                    while (dr.Read())
                        Console.WriteLine($"{dr["hero_id"]} {dr["hero_name"]}");
                }
            }
        }

        static void Insert()
        {
            using (var con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sql = "INSERT INTO hero (hero_id, hero_name) VALUES (1, '薩滿')";
                new SQLiteCommand(sql, con).ExecuteNonQuery();
            }
        }

        static void Update()
        {
            using (var con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sql = "UPDATE hero SET hero_name = '盜賊' WHERE hero_id = 1";
                new SQLiteCommand(sql, con).ExecuteNonQuery();
            }
        }

        static void Delete()
        {
            using (var con = new SQLiteConnection(DB_PATH))
            {
                con.Open();
                string sql = "DELETE FROM hero";
                new SQLiteCommand(sql, con).ExecuteNonQuery();
            }
        }
    }
}

關鍵點:善用 `using` 區塊確保連線與命令物件正確釋放;參數化查詢請使用 `cmd.Parameters.AddWithValue("@p", val)` 防止 SQL Injection。

總結

SQLite 以單一檔案、零部署特性,成為輕量級應用的最佳資料庫選擇。配合 ADO.NET 標準介面,C# 開發者幾乎零學習成本即可上手。下一步可探索 Entity Framework Core 搭配 SQLite,進一步簡化資料存取程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved