在.NET中利用SQLite ADO.NET使用SQLite資料庫

來源:互聯網
上載者:User

 

一、關於SQLite ADO.NET

System.Data.SQLite

是一個原始SQLite的加強版. 它將是一個原版的sqlite3.dll完全替代品 (你甚至就可以把它重新命名為sqlite3.dll). 它不需要連結.NET 運行時,所以可以脫離.NET獨立發布, 然而它內嵌了一個完整的 ADO.NET 2.0 引擎,為開發提供了完整的支援.

以下是它的特性簡介:

完整的 ADO.NET 2.0 實現

整個工程完全基於VS2005 和 ADO.NET 2.0全新構建, 使用了全部的ADO.NET framework新特性. 包括完整的 DbProviderFactory 支援, 自動的分散式交易調用, 廣泛的模式支援, 此外所有的類都是從 ADO.NET 2.0 的基類繼承下來的.

支援完整和精簡的 .NET Framework 以及 C/C++

這個庫不需要連結依賴.NET運行時,100%相容原始的sqlite3.dll,可以使用非託管的C/C++ 進行開發.

可移植的資料庫檔案

未加密的 SQLite 資料庫檔案可以自由的跨平台和處理器使用,包括非Windows平台. 加密之後的資料庫可以在全部Windows平台上使用.

可以信賴的速度,比包括Sql Server Mobile 在內的其它大多數嵌入式資料庫都要快速

SQLite'安裝所佔用的空間相對於Sql Mobile可謂忽略不計了. 它在啟動並執行時候佔用更少的記憶體,同時產生的資料庫也更小.

資料庫加密

可以對整個資料庫檔案進行加密. 支援二進位和明文的密碼.

支援使用Visual Studio 2005 設計

你可以向Server Explorer添加一個SQLite 串連, 使用查詢設計工具建立處查詢語句, 向一個資料集中拖拽一個表格等等! SQLite的開發人員可以在包括體驗版在內的各種Visual Studio 2005下工作.

單檔案再發布包容量在400kb以下

將SQLite本身和ADO.NET 封裝捆綁編譯在一起. 先行編譯的二進位檔案提供了 x86, IA64, x64 和ARM 的版本.

廣泛的SQL語言支援

SQLite 支援大部分的SQL92 標準(see below). 支援命名和未命名的參數以 UTF-8 和UTF-16 編碼通過最佳化的管道傳入SQLite 核心.

使用者自訂的函數 和 排序

全面支援使用者自訂函數和排序方式,意味著你可以用自己喜歡的.NET語言來實現SQLite沒有提供的特性. 這一切將非常的簡單.

提供了全部的原始碼. 100% 免費.

全部的封裝庫原始碼都是公有的. 無論是個人還是商業應用都沒有任何的協議約束.

首頁地址:http://sqlite.phxsoftware.com/

(最新版本1.0.66.0):http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/SQLite-1.0.66.0-setup.exe/download

二、在C#中使用SQLite

1、通過Add References引用SQLite ADO .NET安裝目錄的bin目錄下的System.Data.SQLite.DLL。

2、建立資料庫檔案:因為始終是個0位元組檔案,應該利用IO也可以(?!)。

System.Data.SQLite.SQLiteConnection.CreateFile(datasource);

3、串連資料庫

System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection(connectionString);

connectionString中包含了資料庫的一些配置資訊,比如資料庫檔案,資料庫開啟的密碼等,可以利用System.Data.SQLite.SQLiteConnectionStringBuilder來輔助建立connectionString

4、建立表、讀取資料等和Access或MS SQL沒多大區別了

            //建立一個資料庫檔案

            string datasource="h:/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('ekinglong','mypassword')";

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.