在.net中使用Sqlite數據庫

大家都知道用.net開發的程序一般都是使用Sql server數據庫。但是在一些小項目上,卻不適合。一來是沒有必要爲小項目而裝sql server,二來是sql server的license太貴,不適合小項目使用。

一般的小項目我推薦使用MySql,Access和Sqlite。Access在Xp以前的系統中可以直接使用,MySql在windows下需要一個30M的安裝包或是一個10多M的本地文件包。以前我一直用Access,但是近來我發現Sqlite這個數據庫,感覺很好。向大家介紹一下。

其實Sqlite在嵌入式程序中已經很有名氣了,而且是完全免費的。官方網站爲http://www.sqlite.org/

Sqlite與Access一樣,都是單文件的。就是說沒有數據庫引擎,數據庫文件在磁盤上就是一個文件。而且Sqlite支持索引,視圖和觸發器。這些都比Access強。

好東西還需要好的管理工具來搭配,我推薦Sqlite Administrator或是SqliteSpy。大家可以在網上找他們的最新版本。下面給大家兩個圖,第一個是sqlite Administrator,第二個是SqliteSpy的。

Sqlite Administrator

SqliteSpy

上面兩個工具都可以完成Sqlite的一般工作。比如建庫,建表,查詢等。

如果大家想用.net連接,操作Sqlite,還必須去下載Sqlite的類庫System.Data.SQLite.dll,可以在微軟的官方網站上找到。然後在程序中引用這個DLL就可以。它和ADO.net連接Sql Server一樣,也有Connect,Command,Adapter等控件,具體的操作就不說了。

在使用上,我發現一個問題,就是保存在Sqlite數據庫中換行回車(\r\n),在Sqlite中都被轉成了\n,也就是說,從Sqlite中讀出來的String必須用Replace("\n", "\r\n")轉一下,要不所有的字符都是連一起的,沒有換行回車了。

在最近的一個項目中用了Sqlite,感覺不錯,所以就拿來和大家分享了,有什麼不對的地方還請大家指教。