天天看點

.NET和SQLite取出飛信(Fetion)資訊

啥是 SQLite?

開始我也不知道,找到了一篇相關的文章,自己改了一段代碼來取飛信的聊天記錄和使用者資訊,希望下一版本的飛信把這個功能加上 :)

SQLite是一個開源資料庫,現在已變得越來越流行,它的體積很小,被廣泛應用于各種不同類型的應用中。

什麼是SQLite?

SQLite的官方網站上是這樣定義SQLite的:

SQLite是一個軟體庫,用于實作 自包含、 非服務式、 零配置、 事務化的SQL資料庫引擎。

SQLite是一個嵌入式SQL資料庫引擎,與其它大多數SQL資料庫不同的是,SQLite沒有獨立的服務程序。SQLite直接讀寫原始的磁盤檔案,一個擁有多個表、索引、觸發器和視圖的完整SQL資料庫就包含在一個獨立的磁盤檔案中。資料庫檔案的格式是跨平台的,你可以在32位和64位系統之間、甚至在 Big-Endian和 Little-Endian(譯者注:這是兩種不同的位元組排序方式,Big-Endian是指一個word中的高位Byte是放在記憶體word區域的低位址處,而Little-Endian則與之相反)兩種不同的架構間自由地拷貝資料庫,這一特性讓SQLite成為 應用檔案格式的一種流行選擇。SQLite不能替代 Oracle,但可以考慮作為 fopen()的替代方法。

SQLite已經是世界上 布署得最廣泛的SQL資料庫引擎,被用在無以計數的桌面電腦應用中,還有消費電子裝置中,如行動電話、掌上電腦和MP3播放器等。SQLite的源碼就放在公有領域(即WikiPedia的 public domain)中。

SQLite最早是應用在Linux和OSX平台上的,但對資料庫需求較少的Windows應用而言,它是替代SQL Express和Access資料庫運作于.NET之上的一個可行且實用的選擇。

有一篇來自開發者Mike Duncan的文章,給出了一個在3分鐘内就可将SQLite安裝到.NET上的指南。這個指南非常有用,讀完它你就可以使用一個輕量級的資料庫來處理你丢給它的許多任務。

3分鐘的指南

指南是從第一次下載下傳SQLite開始的:

盡管你可以通過 SQLite下載下傳頁獲得Windows的通用庫,但我還是打算建議你 從sourceforge擷取SQLite的ADO.NET 2.0資料提供者,我并不是說它是最高效的版本(它有一個ADO包裝層以及附帶的無用功能),但它确實是一個非常容易上手的版本,可能值得長期使用。

找出DLL:

将找到的DLL(System.Data.SQLite.DLL)拷貝到你的項目中,并添加引用。

下載下傳和安裝一個SQLite GUI工具,SQLiteMan有一個非常出色的windows版本,指南上是這樣說的:

我一直在使用的工具名為 “SQLite Administrator”(很合适的名字,它是免費的!)有一個“甜點”——有着一個和Query Analyzer很像的界面。如果你有興趣的話,可以從這裡 http://www.sqlite.org/cvstrac/wiki?p=ManagementTools找到一個很大的SQLite GUI用戶端清單。

指南的最後一步就是建立一個SQLite資料庫:

通過GUI,建立一個資料庫并随意建立一個測試表,就會出現一個以.s3db為尾綴的單獨檔案。

一旦System.Data.SQLite.dll被引用為.NET項目的一部分,那就可以像在你的應用頂部寫using System.Data.SQLite那樣容易地使用它。通過使用ADO.NET包裝層,一個參數化的查詢看上去會像是這樣:

string lookupValue;

using (SQLiteCommand cmd = cnn.CreateCommand())

{

for (int i = 0; i < 100; i++)

{

lookupValue = getSomeLookupValue(i);

cmd.CommandText = @"UPDATE [Foo] SET [Value] = [Value] + 1

WHERE [Customer] LIKE '" + lookupValue + "'";

cmd.ExecuteNonQuery();


}

}      

資料提供者

SQLite已經實實在在地影響到.NET的開發,已經有很多資料提供器被用于流行的對像關系映射(O/RM, 即Object-Relational Mapper)架構中。

  • SQLite NHibernate Provider
  • SQLite Subsonic Provider
  • SQLite LINQ Provider

LINQ提供器允許.NET 3.5的開發者們利用新LINQ架構的優勢,并以SQLite作為後端資料存儲。

SQLite可以作為替代Access或SQL Express讓資料庫應用快速建立和運作起來的一個不錯選擇,而且因為資料庫還可以同時在Linux和Mac OSX平台上使用,是以建立一個可以跨平台使用的資料庫應用很容易。

付上取飛信資訊代碼:

using  System.Data.SQLite;

SQLiteConnection conn  =   new  SQLiteConnection( " Data Source=history.dat 路徑;Version=3;Password=飛信号 " ;));

SQLiteDataAdapter sda  =   new  SQLiteDataAdapter();

DataSet ds  =   new  DataSet();

conn.Open();

sda.SelectCommand  =   new  SQLiteCommand( " select * from Player " , connHis);

sda.Fill(ds,  " Player " );

sda.SelectCommand  =   new  SQLiteCommand( " select * from Message " , connHis);

sda.Fill(ds,  " Message " );

sda.SelectCommand  =   new  SQLiteCommand( " select * from MessageBody " , connHis);

sda.Fill(ds,  " MessageBody " );

sda.Dispose();

conn.Close();

轉載于:https://www.cnblogs.com/mmmhhhlll/archive/2008/06/09/1216295.html