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 数据库相关推荐

  1. android sqlite删除表中所有数据,对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库...

    对于Sqlite,删除Sqlite数据库中的所有表,删除sqlite数据库 SQLite数据库中一个特殊的名叫SQLITE_MASTER上执行一个SELECT查询以获得所有表的索引.每一个SQLite ...

  2. Android查看手机中的db文件,查看sqlite数据库的表结构

    转载自:https://blog.csdn.net/u011835956/article/details/52368829 我们的app里面用到sqlite数据库的时候, 会生成一个db文件,保存在我 ...

  3. Python批量导入Excel文件中的不重复数据到SQLite数据库

    封面图片:<Python可以这样学>,董付国,清华大学出版社 ============== 好消息:智慧树网APP"知到"中搜索"董付国"可以免费观 ...

  4. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  5. 如何在R中正确使用列表?

    本文翻译自:How to Correctly Use Lists in R? Brief background: Many (most?) contemporary programming langu ...

  6. python中print的用法_Python中print函数简单使用总结

    Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法. 打开电脑,选择python软件,下面选择pyth ...

  7. MySQL中使用CASE出错,如何在MySQL中正确使用CASE..WHEN

    如何在MySQL中正确使用CASE..WHEN 这里是一个演示查询,注意它非常简单,仅在base_price为0的位置获取,并且仍然select条件3: SELECT CASE course_enro ...

  8. jest.conf.js_如何在Jest中正确模拟Moment.js / dates

    jest.conf.js by Iain Nash 由伊恩·纳什(Iain Nash) 如何在Jest中正确模拟Moment.js / dates (How to correctly mock Mom ...

  9. 安卓开发使用ttf文字_Android中正确使用字体图标(iconfont)的方法

    字体图标 字体图标是指将图标做成字体文件(.ttf),从而代替传统的png等图标资源. 使用字体图标的优点和缺点分别为: 优点: 1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适 ...

最新文章

  1. MySQL5.6.16二进制源码安装详解及一键安装实现
  2. Python/Jupyter Notebook以及可视化的运用
  3. 直播报名 | 超低延时直播架构解析
  4. mysql pgsql 2017,DB-Engines 2017 年度数据库:PostgreSQL 实至名归
  5. Linux下Bluez的编程实现
  6. 《SAS编程与数据挖掘商业案例》学习笔记之十
  7. 个人简历小程序前端源码
  8. handsontable pro 授权码 key 生成器(JS函数)(仅供学习交流)
  9. 哪些专业是毕业即失业?
  10. scala递归求斐波那契数列
  11. jquery的DOM节点操作(创建和插入元素节点)
  12. php有个schost.exe_windows找不到svchost.exe(附图)
  13. SpringBoot框架下使用过滤器Filter
  14. C语言 数组 冒泡排序法
  15. era5气溶胶反演_我院第七届“共享杯”大赛获奖专访来了,各位大气学子进来取经吧!...
  16. [C语言] 混合or连续使用getchar,scanf所出现的错误
  17. 四象限运行模式_四象限变频器原理及系统构成
  18. UDS诊断系列介绍08-19服务
  19. Css3中align-content,深入理解css中的align-content属性
  20. 《代号:魂之刃2》- 身处黑暗的勇者游戏

热门文章

  1. VIJOS 1052贾老二算算术 (高斯消元)
  2. Centos7.0上搭建LAMP平台安装discuz后无法访问
  3. html5自动添加数据库,HTML5本地存储之如果没有数据库究竟会怎样
  4. mysql修改存储引擎报错,MySQL改变表的存储引擎
  5. 数组字典_VBA数组与字典解决方案第1讲:函数,公式,数组,数组公式的概念...
  6. MySQL5.7 版本的安装、配置
  7. 分布式认证方案-基于token的认证方式
  8. 初步认识Volatile-MESI优化带来的可见性问题
  9. 手写自己的MyBatis框架-支持注解配置SQL
  10. 绕过网关访问图片上传并解决跨域问题