總結:
關於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 Files\System.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 < SQLStringList.Count; n++) { string strsql = SQLStringList[n].ToString(); if (strsql.Trim().Length > 1) { cmd.CommandText = strsql; cmd.ExecuteNonQuery(); } } tx.Commit(); } catch (System.Data.SQLite.SQLiteException E) { tx.Rollback(); throw new Exception(E.Message); }
相關文章:
SQLite關係型資料庫的使用
如何在.NET中使用MySQL資料庫
相關視頻:
SQLite進階課程