天天看點

初識SqlLite ---.net連接配接資料庫混合模式程式集是針對“v2.0.50727”版的運作時生成的,在沒有配置其他資訊的情況下,無法在 4.0 運作時中加載該...

  Sqlite 是一款輕量級的關系型資料庫,以小巧和嵌入式聞名。以前隻是聽說,現在終于忍不住要嘗試下.本文的初衷是為.net平台的使用者提供幫助。

capable of installing the design-time components for Visual Studio 2010. 

安裝後,在VS2010中建立數數庫連結就會看到有System.Data.SQLite的連結,在這裡你可以建立和打開Sqlite資料庫:

初識SqlLite ---.net連接配接資料庫混合模式程式集是針對“v2.0.50727”版的運作時生成的,在沒有配置其他資訊的情況下,無法在 4.0 運作時中加載該...

在sqlite連結中,你可以為你的sqlite資料庫設定密碼和其他配置。确定後,會生成一個沒有擴充名的資料檔案。

大家一般都了解到,sqlite資料檔案是.db或.sqlite或其他擴充結尾,而用VS2010建立的sqlite資料庫檔案是沒有擴充名的,并且其加密能力特别高,

一般的sqlite程式在沒密碼的情況下,很難打開。

用VS2010建立sqlite資料庫後,就可以像操作sql server那樣操作sqlite,如:建表,查詢等都非常友善,感興趣的可以嘗試下,這裡就不一一截圖說明了。

在項目,需要添加sqlite引用:System.Data.SQLite.dll和System.Data.SQLite.Linq.dll

Sqlite資料庫清理

最後,說明下SQLite的一個不好的地方,當資料庫中的一個或多個資料表存在大量的插入、更新和删除等操作時,将會有大量的磁盤空間被已删除的資料所占用,

在沒有執行VACUUM指令之前,SQLite并沒有将它們歸還于作業系統。

由于該類資料表中的資料存儲非常分散,是以在查詢時,無法得到更好的批量IO讀取效果,進而影響了查詢效率。 

在SQLite中,僅支援清理目前連接配接中的主資料庫,而不能清理其它Attached資料庫。VACUUM指令在完成資料清理時采用了和PostgreSQL相同的政策,即建立

一個和目前資料庫檔案相同大小的新資料庫檔案,之後再将該資料庫檔案中的資料有組織的導入到新檔案中,其中已經删除的資料塊将不會被導入,在完成導入後,

收縮新資料庫檔案的尺寸到适當的大小。可以使用VACUUM的方法對sqlite資料庫進行清理:

好了,介紹了很多運作下面代碼試試:

點選運作,有可能會報錯:

初識SqlLite ---.net連接配接資料庫混合模式程式集是針對“v2.0.50727”版的運作時生成的,在沒有配置其他資訊的情況下,無法在 4.0 運作時中加載該...

原因是驅動版本問題,詳細可見

解決方法就是在app.config中加入

因為我用的是控制台,所有要另外添加app.config檔案

好,在運作,成功:結果如下

初識SqlLite ---.net連接配接資料庫混合模式程式集是針對“v2.0.50727”版的運作時生成的,在沒有配置其他資訊的情況下,無法在 4.0 運作時中加載該...

我有一個疑問,這個資料庫檔案我怎麼生成,難道一直用這個Test.db3。問題先留着,有知道可以告訴我一下,因為是淺淺的嘗試還有很多不知道。慢慢學,慢慢提高,我會一直将我的心得都寫出來的