一、開發環境
操作系統: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 軟件,下載網址如下:
http://system.data.sqlite.org/downloads/1.0.105.2/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,則可以進行下載安裝,下載網址如下:
http://system.data.sqlite.org/downloads/1.0.105.2/sqlite-netfx40-setup-bundle-x86-2010-1.0.105.2.exe
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主函數里輸入以下代碼,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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、運行結果如下:
附源代碼:c#創建sqlite控制臺應用程序
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/cncc/p/7158126.html