在MonoTouch中正确而简单的使用 Sqlite 数据库
iOS 提供了 Sqlite 作為本地數據庫, MonoTouch 同樣也提供了 Mono.Data.Sqlite 對 Sqlite 進行了封裝。 與?Objective-c 使用 Sqlite 數據庫相比, 使用 MonoTouch 進行 Sqlite 數據訪問可以很簡單,? 先來瀏覽一下 Mono.Data.Sqlite 提供的類庫, 有這么幾個重要的類, 它們是:
- SqliteConnection , 繼承自 System.Data.Common.DbConnection;
- SqliteCommand , 繼承自 System.Data.Common.DbCommand ;
- SqliteDataAdapter , 繼承自 System.Data.Common.DbDataAdapter ;
- SqliteDataReader , 繼承自 System.Data.Common.DbDataReader ;
- SqliteFactory , 繼承自 System.Data.Common.DbProviderFactory ;
- SqliteParameter , 繼承自 System.Data.Common.DbParameter ;
- SqliteTransaction , 繼承自 System.Data.Common.DbTransaction ;
如果對這些以 Sqlite 開頭的類不熟悉的話, 情有可原, 可對 System.Data.Common 下面的類應該再熟悉不過了吧, 沒錯, 這就是標準的 ADO.Net , 因此只要會 ADO.Net 的開發人員, 幾乎可以立即上手, 這正是 MonoTouch 對 .Net 開發人員提供的價值所在。 來看一段下面的代碼:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using?(var?connection = SqliteFactory.Instance.CreateConnection()) { ???connection.ConnectionString = string.Format("data source={0}/northwind.db3; version=3;", Environment.CurrentDirectory); ???var?command = connection.CreateCommand(); ???command.Connection = connection; ???command.CommandText = "SELECT * FROM Products WHERE CategoryID = ?"; ???var?parameter = command.CreateParameter(); ???parameter.Value = "1"; ???command.Parameters.Add(parameter); ???connection.Open(); ???var?reader = command.ExecuteReader(CommandBehavior.CloseConnection); ???while?(reader.Read()) { ??????// use reader's data here ... ???} } |
這段代碼很普通, 除了使用了一個 SqliteFactory 之外, 和 ado.net 數據訪問幾乎沒有什么區別, 但是, 從這段代碼可以看出, 我們項目原有的代碼幾乎可以原封不動的拿到 MonoTouch 進行編譯,? 相信很多人都有自己對 ado.net 的封裝, 如果有了 MonoTouch , 這些封裝可以很方便的移植到 MonoTouch 下。
最后不得不說一句, 對于 .Net 開發人員來說, MonoTouch 真的是一個好東西, 它可以讓你盡快加入到 ios 的開發中, 最大限度的將你的 .net 技能延伸到 ios 。
張志敏所有文章遵循創作共用版權協議,要求署名、非商業 、保持一致。在滿足創作共用版權協議的基礎上可以轉載,但請以超鏈接形式注明出處。
本博客已經遷移到 GitHub , 圍觀地址:?http://beginor.github.io/
本文轉自張志敏博客園博客,原文鏈接:http://www.cnblogs.com/beginor/archive/2011/08/30/2159448.html,如需轉載請自行聯系原作者總結
以上是生活随笔為你收集整理的在MonoTouch中正确而简单的使用 Sqlite 数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新加坡樟宜机场将进入“刷脸”时代 自助通
- 下一篇: 浅谈PostgreSQL的索引