使用C#創建SQLite控制台應用程序


本文屬於原創,轉載請注明出處,謝謝!

一、開發環境

操作系統:Windows 10 X64

開發環境:VS2015

編程語言:C#

.NET版本:.NET Framework 4.0

目標平台:X86

二、前言

之前使用的是軟件的Access來創建基於本地的數據庫軟件,發現在使用過程中,發現Access比較耗內存,運行速度比SQLite稍微慢,另外一個最重要的是Access加密的文件容易被破解,因此,現在轉向使用SQLite來代替Access。

三、SQLite的下載

1、由於是基於.NET的C#編程,需下載System.Data.SQLite.dll來進行引用,下載網址如下:

2、由於使用的是.NET Framework 4.0,且軟件開發的目標平台是X86,因此需下載 sqlite-netFx40-setup-x86-2010-1.0.105.2.exe 軟件,下載網址如下:

另外,還有一個 sqlite-netFx40-setup-bundle-x86-2010-1.0.105.2.exe,它與 sqlite-netFx40-setup-x86-2010-1.0.105.2.exe 的區別是,它含有VS2010的運行時組件,因使用的VS2015,所有安裝該帶有bundle的軟件實際沒有什么用處,如果你使用的是VS2010,則可以進行下載安裝,下載網址如下:

3、下載的是Setup安裝包,因此只需按照點擊下一步(Next)或安裝(Install),直至安裝完畢即可。

四、創建加密版本的SQLite數據庫

在此使用的SQLite數據庫管理軟件為SQLite Studio,版本為3.1.1,下載網址如下:

有人會問,怎么不使用Navicat For SQLite,這個軟件不僅有完全的中文版本,而且還有詳細使用說明,不是更好嗎?

其實,當初也想用這個軟件來對SQLite數據庫進行管理,但在創建加密版本的SQLite數據庫時,發現使用System.Data.SQLite.dll來對該數據庫操作時,會彈出類似數據庫文件被加密或者不是數據庫文件的提示,而非加密版本的就沒有此問題,因此,可以使用Navicat For SQLite來對非加密的SQLite數據操作,但如果需要使用加密的SQLite數據庫,推薦使用SQLite Studio,因為它生成的加密版本SQLite數據庫可以被System.Data.SQLite.dll識別。

關於為何不能使用Navicat For SQLite來對加密數據庫記性操作的原因是:Navicat使用的加密算法與SQLite Studio的不一樣。

1、打開SQLite Studio,點擊“添加數據庫”按鈕,如下圖所示:

2、數據類型選擇“System.Data.SQLite”,點擊綠色添加按鈕,將文件保存至D:\Test.db,並在Password一欄內輸入密碼:2017(如不使用密碼,此處留空即可),然后點擊“OK”按鈕即可創建一個加密版本的SQLite DB文件,如下圖所示:

3、雙擊“Test”數據庫,將會顯示其下的子節點,選擇“Tables”,並在工具欄點擊“新建表”按鈕,如下圖所示:

4、在Table name文本框內輸入表名Info,並點擊“Add columns(Ins)”圖標以便添加列,如下圖所示:

5、添加第一個字段,字段名為ID,數據類型為Text,將主鍵前的復選框打鈎,並點擊“OK”按鈕,如下圖所示:

6、重復第4個步驟,點擊“Add columns(Ins)”圖標以便添加另外一個列,字段名為Name,數據類型為Text,將非空前的復選框打鈎,並點擊“OK”按鈕,如下圖所示:

7、點擊“Commit structure changes”圖標以便保存該表及字段,如下圖所示:

8、在彈出的對話框點擊“OK”按鈕,即可完成表單的創建工作,如下圖所示:

9、選擇“數據”選項卡,點擊“插入行(Ins)”圖標按鈕,如下所示:

10、在行數據編輯欄里輸入兩條數據,第一條數據ID為2017、Name為LSB,第二條數據ID為2011、Name為CNC,如下圖所示:

11、添加數據完畢之后,點擊“提交(Ctrl+Return)”圖標按鈕提交剛才輸入的兩條數據,如下圖所示:

12、關閉SQLite Studio數據庫管理軟件。

五、使用System.Data.SQLite.dll訪問SQLite數據庫

1、新建一個項目名為“SQLiteTest”的控制台應用程序,如下圖所示:

2、在“SQLiteTest”項目中右鍵點擊“引用”,在彈出的上下文菜單中選擇“添加引用(R)”,如下圖所示:

3、將路徑為“C:\Program Files (x86)\System.Data.SQLite\2010\GAC\System.Data.SQLite.dll”的引用添加進來,如下圖所示:

4、在項目屬性設置中,將“生成”選項卡中的目標平台改為“X86”,否則,軟件無法運行,原因是使用的是X86版本的System.Data.SQLite.dll,如下圖所示:

 

5、在Main主函數里輸入以下代碼,如下:

using System;
using System.Data.SQLite;
using System.Data;

namespace SQLiteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SQLiteConnection connection = new SQLiteConnection(@"Data Source = D:\test.db;Password = 2017"))
            {
                using (SQLiteCommand command = new SQLiteCommand(connection)
                { CommandText = "SELECT * FROM [main].[Info]" })
                {
                    DataTable table = new DataTable("Info");
                    SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                    adapter.Fill(table);
                    foreach(DataRow row in table.Rows)
                    {
                        foreach(DataColumn col in table.Columns)
                        {
                            Console.Write($"{row[col]}\t");
                        }
                        Console.WriteLine();
                    }
                }
            }
            Console.ReadKey();
        }
    }
}

6、運行結果如下:

 

附源代碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM