總結:
? ? ?關于sqlite的庫安裝比較特殊:
? ? ?下載地址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki ?–ok!
? ? ? ? ? ? ? ?https://www.sqlite.org/download.html。—用于安卓、Mac、linux等平臺的下載。?
? ? ?下載安裝包:
? ? ? ? ? ?sqlite-netFx20-setup-bundle-x64-2005-1.0.108.0.exe ?—測試ok!
? ? ? 或者 sqlite-netFx45-setup-bundle-x64-2012-1.0.108.0.exe ?需要先卸載2.0版,再安裝。—測試ok!
? ? ? (為了與其它軟件保持一致,建議安裝.Net 4.5版本的!)
? ? ?默認安裝路徑:C:Program FilesSystem.Data.SQLite
? ? ?.Net引用:只需引用安裝bin目錄下的,System.Data.SQLite.dll一個文件即可!
? ? ?注意:
? ? ? 1、帶bundle的表示動態庫是按混合模式編譯的,還有純x86和純x64模式的庫,共3種,按實際需要選擇。(與項目的生成–目標平臺一致才行!)
? ? ? 2、下載的庫,一定要安裝,才行!!(只引用,未安裝,運行會報錯!!)
? ? ? 3、.Net使用SQLite,只需要引用System.Data.SQLite.dll,根本用不著 sqlite3.dll。沒想到吧!
SQLite 介紹:
? ? SQLite,是一款輕型的數據庫,用于本地的數據儲存。開源數據庫。
? ? 優點,它占用資源非常的低,在嵌入式設備中需要幾百K的內存就夠了;作為輕量級數據庫,他的處理速度也足夠快;支持的的容量級別為T級;獨立: 沒有額外依賴;開源;支持多種語言。
? ? 詳細優點:
? ?1、它的設計目標是嵌入式的,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。
? ?2、跨平臺和多語言支持:它能夠支持windows/Linux/unix等等主流的操作系統,同時能夠跟很多程序語言相結合,
? ? ? 比如C, C++, php, perl, Java, C#,python, ruby等。
? ?3、速度快:比起mysql、postgresql這兩款開源的世界著名數據庫管理系統來講,它的處理速度比他們都快。
? ? ? (比一些流行的數據庫在大部分普通數據庫操作要快。)
? ?4、支持數據庫大小至2TB。
? ?5、足夠小, 大致13萬行C代碼, 4.43M
? ?6、簡單, 輕松的API
? ?7、源碼完全的開源, 你可以用于任何用途, 包括出售它。
? ?8、它還支持事務處理功能等等。
使用.NET操作SQLLITE:
示例代碼1:
??public?string?Query()????????{????????????string?datasource?=?"e:/tmp/test.db";????????????System.Data.SQLite.SQLiteConnection.CreateFile(datasource);????????????//連接數據庫????????????System.Data.SQLite.SQLiteConnection?conn?=?new?System.Data.SQLite.SQLiteConnection();????????????System.Data.SQLite.SQLiteConnectionStringBuilder?connstr?=?new?System.Data.SQLite.SQLiteConnectionStringBuilder();????????????connstr.DataSource?=?datasource;????????????connstr.Password?=?"admin";//設置密碼,SQLite?ADO.NET實現了數據庫密碼保護????????????conn.ConnectionString?=?connstr.ToString();????????????conn.Open();????????????//創建表????????????System.Data.SQLite.SQLiteCommand?cmd?=?new?System.Data.SQLite.SQLiteCommand();????????????string?sql?=?"CREATE?TABLE?test(username?varchar(20),password?varchar(20))";????????????cmd.CommandText?=?sql;????????????cmd.Connection?=?conn;????????????cmd.ExecuteNonQuery();????????????//插入數據????????????sql?=?"INSERT?INTO?test?VALUES('a','b')";????????????cmd.CommandText?=?sql;????????????cmd.ExecuteNonQuery();????????????//取出數據????????????sql?=?"SELECT?*?FROM?test";????????????cmd.CommandText?=?sql;????????????System.Data.SQLite.SQLiteDataReader?reader?=?cmd.ExecuteReader();????????????StringBuilder?sb?=?new?StringBuilder();????????????while?(reader.Read())????????????{????????????????sb.Append("username:").Append(reader.GetString(0)).Append("n")????????????????.Append("password:").Append(reader.GetString(1));????????????}????????????//MessageBox.Show(sb.ToString()); ????????????return?sb.ToString();????????}
示例代碼2:事務操作:
using?(SQLiteConnection?conn?=?new?SQLiteConnection(connectionString)) ????????????{ ????????????????conn.Open(); ????????????????SQLiteCommand?cmd?=?new?SQLiteCommand(); ????????????????cmd.Connection?=?conn; ????????????????SQLiteTransaction?tx?=?conn.BeginTransaction(); ????????????????cmd.Transaction?=?tx; ????????????????try ????????????????{ ????????????????????for?(int?n?=?0;?n??1) ????????????????????????{ ????????????????????????????cmd.CommandText?=?strsql; ????????????????????????????cmd.ExecuteNonQuery(); ????????????????????????} ????????????????????} ????????????????????tx.Commit(); ????????????????} ????????????????catch?(System.Data.SQLite.SQLiteException?E) ????????????????{ ????????????????????tx.Rollback(); ????????????????????throw?new?Exception(E.Message); ????????????????}
相關文章:
相關視頻: