2025澳门开彩结果历史记录-2025澳门开彩结果-2025澳门开彩查询记录-2025澳门聚宝盆-2025澳门九点半一肖一码-2025澳门精准资料免费全览

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【C#.net】SQLite數據庫入門:創建、訪問和加密數據庫

admin
2025年1月26日 9:40 本文熱度 1690
SQLite是一個極其輕量化的數據庫系統,它使用起來非常簡單,無需安裝和配置服務器,程序直接從磁盤的數據庫文件上讀取數據即可。特別適合手機應用或小型的桌面軟件使用。下面來詳細介紹如何使用SQLite。

一、下載sqlite并配置環境變量
如果要在本地創建一個sqlite數據庫文件,首先要下載sqlite程序,可以在官方網站上下載,下載地址:https://www.sqlite.org/download.html?。如果你使用的是windows 64位系統,就選擇下圖中的第2、3項下載,下載后將文件解壓到指定文件夾下,例如解壓到D:\SQLite文件夾里。
在環境變量的系統變量中的path里添加一個路徑:D:\SQLite,即sqlite3.exe文件所在的路徑。添加環境變量后,在命令行里輸入:sqlite3,出現如下圖所示的提示,說有配置成功。
二、相關工具下載
雖然不需要借助其它工具也可以在命令行里直接使用sqlite,但是這種操作方式不怎么友好,特別是對于初學者。目前有許多輔助工具使得操作sqlite更為方便,例如SQLiteSpy、sqlcipher等等。如果需要這些工具,可以自行百度搜索獲取。
三、創建數據庫、數據表和數據記錄
使用SQLiteSpy可以很方便地創建一個數據庫,如下圖所示,點擊Fileànew Database就會彈出選擇數據庫保存的文件夾和名稱的對話框,選擇路徑,并輸入數據庫名稱,例如mydatabase.db,確定后就已經在指定位置創建好一個數據庫。
如果要創建一個數據表,則在右側的文本框里輸入SQL語句,然后選擇菜單Execute-->Execute SQL即可。如下圖所示:
四、用C#訪問sqlite數據庫
在visual studio中的nuget程序包管理中搜索并安裝Microsoft.Data.Sqlite.Core。
使用下面的代碼訪問上面數據庫中的example數據表
 
 string query = "SELECT * FROM example"; 
 string connectionString = $"Data Source=D:\\SQLite\\testDatabase.db";
 var connection = new SqliteConnection(connectionString);
     connection.Open();
     using (var command = new SqliteCommand(query, connection))
     {
         using (var reader = command.ExecuteReader())
         {
             while (reader.Read())
             {
                 string name = reader.GetString(1); // 或者使用reader["data"]
                 Console.WriteLine($"Name: {name}");
             }
         }
     }
     connection.Close();
 }
四、安全問題
通過上面的操作,我們已經實現了數據庫的創建和讀寫,但是還有一個最重要的問題——安全。用上面的操作方法創建出來的數據庫不需要密碼就可以查看所有數據,這對于重要的數據顯然是不安全的,那應該如何給sqlite數據庫加密呢?
首先要在Visual studio中的nuget中安裝sqlcipher。
安裝好sqlcipher后,找到項目目錄下的packages\SQLitePCLRaw.lib.e_sqlcipher.2.1.10\runtimes文件夾,在runtimes文件夾里,有多個子文件夾,需要根據自己電腦的操作系統選擇相應文件夾里的e_sqlcipher.dll文件,復制該文件到程序運行的文件夾中去(例如,調試時對應的運行文件夾是bin\debug)。
接下來,用C#代碼創建一個帶密碼的空白數據庫文件,然后把已有的未加密的數據庫的數據全部搬遷到這個帶密碼的空白數據庫文件中。以下面這個方法實現:
 
 public  void CreateEncryptedDatabase(string plaintextDbPath, string encryptedDbPath, string encryptionKey)
{
    //創建一個新的加密數據庫文件
    using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder()
    {
        DataSource = encryptedDbPath,
        Password = encryptionKey
    }.ToString()))
    {
        connection.Open();
       //此處可添加數據庫的其余操作
        connection.Close();
    }
    // 連接到原來沒有密碼的數據庫,并導出數據到加密的數據庫中去
    using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder()
    {
        DataSource = plaintextDbPath
    }.ToString()))
    {
        connection.Open();
        using (var command = new SqliteCommand($"ATTACH DATABASE '{encryptedDbPath}' AS encrypted KEY '{encryptionKey}';" +
            $"SELECT sqlcipher_export('encrypted');" +
            $"DETACH DATABASE encrypted;", connection))
        {
            command.ExecuteNonQuery();
        }
        connection.Close();
    }
}
通過上面這個方法,就創建出了一個帶密碼的sqlite數據庫文件。訪問這個數據庫時,可用下面這段示例代碼:
 
 public void read(string encryptedDbPath, string encryptionKey)
 {
     string query = "SELECT * FROM example"; // 替換your_table_name為你的表名

     using (var connection = new SqliteConnection(new SqliteConnectionStringBuilder()
     {
         DataSource = encryptedDbPath,
         Password = encryptionKey
     }.ToString()))
     {
         connection.Open();
         using (var command = new SqliteCommand(query, connection))
         {
             using (var reader = command.ExecuteReader())
             {
                 while (reader.Read())
                 {
                            
                     string name = reader.GetString(1); // 或者使用reader["data"]
                     Console.WriteLine($"Name: {name}");
                 }
             }
         }
         connection.Close();
     }
 }
至此,使用SQLite創建、訪問和加密數據庫的工作就全部完成了。


該文章在 2025/1/26 9:40:53 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 香港最准100‰一肖中特 | 香港内部最准的一肖一码 | 香港精准内部资料大全最新更新 | 晒码汇2025澳门正版资料下载 | 香港资料大全正版资料2025年免费 | 正版管家婆资料大全 | 二四六天天彩(944cc | 澳门正版资料大全免费下载软 | 黄大仙三肖三码必中一期l[么么] | 新澳门2025年资料大全管家婆官方版下载 | 管家婆最准一肖一 | 刘半仙一肖一码免费资料大全 | 49澳门资料免费送 | 好彩堂精选400500.备用网 | 澳门49图库Tkcom正版下载绿色版 | 澳门今晚资料图库 | 新澳门正版资料免费看 | 2025澳门传真澳门传真网站 | 新澳精准资料免费提供软件和信息技术服务业为主的企业 | 一码三中三 | 新奥六开彩资料2025 | 今晚澳门四肖八码期期准 | 马会论坛 | 澳门四不像论坛www961212 | 新澳门内部三肖三码精准期期公开 | 新奥2025免费资料公开 | 2025年新澳开奖结果 | 2025澳彩开奖记录查询表 | 管家婆一肖一码一中一特 | 今晚有什么生肖必开度 | 管家婆三期开一期精准秘诀解析 | 2025年买特马最准网站 | 49图库免费资料大全手机免费下载 | 管家婆一肖一码全网最准 | 王中王王中王免费资料大全 | 天中图库今日送一注162期 | 图片牛马打一个成语 | com成立于2025年04月10日 com-2025新澳今晚资料 | 2025澳门精准正版资料免费大全 | 49澳门免费资料大全特色 | 香港澳门资料大全是一家为客户提供澳门正版资料免费大全公开和全网最全最准资料图库大全 |