C#學習九之WPF應用使用SQLite數據庫詳解


使用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();

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM