標籤:
使用SQLite之前,我們先來瞭解瞭解SQLite的優點:
◇輕量級
先說它的第一個特色:輕量級。想必SQLite的作者很看重這個特性,連它的Logo都是用的“羽毛”,來顯擺它的輕飄飄。
SQLite和C/S模式的資料庫軟體不同,它是進程內的資料庫引擎,因此不存在資料庫的用戶端和伺服器。使用SQLite一般只需要帶上它的一個動態 庫,就可以享受它的全部功能。而且那個動態庫的尺寸也挺小,以版本3.6.11為例,Windows下487KB、Linux下347KB。
◇綠色軟體
SQLite的另外一個特點是綠色:它的核心引擎本身不依賴第三方的軟體,使用它也不需要“安裝”。所以在部署的時候能夠省去不少麻煩。
◇單一檔案
所謂的“單一檔案”,就是資料庫中所有的資訊(比如表、視圖、觸發器、等)都包含在一個檔案內。這個檔案可以copy到其它目錄或其它機器上,也照用不誤。
◇跨平台/可移植性
如果光支援主流作業系統,那就沒啥好吹噓的了。除了主流作業系統,SQLite還支援了很多冷門的作業系統。我個人比較感興趣的是它對很多嵌入式系統(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支援。
◇記憶體資料庫(in-memory database)
這年頭,記憶體越來越便宜,很多普通PC都開始以GB為單位來衡量記憶體(伺服器就更甭提了)。這時候,SQLite的記憶體資料庫特性就越發顯得好用。
SQLite的API不區分當前操作的資料庫是在記憶體還是在檔案(對於儲存介質是透明的)。所以如果你覺得磁碟I/O有可能成為瓶頸的話,可以考慮切換 為記憶體方式。切換的時候,操作SQLite的代碼基本不用大改,只要在開始時把檔案Load到記憶體,結束時把記憶體的資料庫Dump迴文件就OK了。
下面給大傢具體說一下使用它的步驟:
1.從SQLite官網下載System.Data.SQlite.dll
網址:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
這個動態連結程式庫需要Microsoft Visual C++ Runtime Library 這個就需要大家有visual C++的運行庫,大家可以在控制台的程式中查看,如果沒有,那麼就下載s‘teup版,如果已經有的就下載static版。還有要注意的一點是下載的時候記得下載的檔案是運行在X64系統還是X32系統的,而在自己程式中是要調整相應架構,不然會出啟動並執行檔案格式錯誤。
2.有了這個就可以在visual stidio中引用這個庫。
3.下面是一些操作SQLite的C#語句:
SQLiteConnection con = new SQLiteConnection("Data Source=record.sqlite;Version=3;"); con.Open(); SQLiteCommand cmd = new SQLiteCommand(); cmd.Connection = con; Boolean testTableExists = false; cmd.CommandText = "SELECT * FROM sqlite_master WHERE type=‘table‘ and name=‘informations‘"; using (SQLiteDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { testTableExists = true; } } if (!testTableExists) { string sql= "CREATE TABLE informations (Website nvarchar(30), userName nvarchar(30), password nvarchar(30))"; SQLiteCommand command = new SQLiteCommand(sql, con); command.ExecuteNonQuery(); MessageBox.Show("OK"); } string sqls = string.Format("INSERT INTO informations(Website, userName, password) VALUES (‘{0}‘,‘{1}‘,‘{2}‘)",txWebsite.Text,txUsername.Text,txpassword.Text) ; SQLiteCommand commands = new SQLiteCommand(sqls, con); commands.ExecuteNonQuery(); MessageBox.Show("OKs"); con.Close();
C#學習九之WPF應用使用SQLite資料庫詳解