上一篇文章基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义中对本案例所涉及的数据表及部分数据,本文开始将从最基本的业务,数据访问--SQL语句操纵开始。
在AgileEAS.NET平台中,对数据访问进行了封装,称为UDA(统一数据访问),有关于AgileEAS.NET平台UDA的介绍请参考AgileEAS.NET之统一数据访问一文。
在UDA中定义两个接口IDataConnection和IDataAccessor两个接口,IDataConnection提供了数据连接环境IDataAccessor提供了进行SQL语句操作的能力。

处理流程

如果使用UDA进行数据库操作呢,请看下面的流程:

我们转换程序代码即为:

    public void FullFlow(){string dbConnectiong = "";IDataConnection dataConnection = new OleDbConnection(dbConnectiong);IDataAccessor dataAccessor = dataConnection.CreateDataAccessor();dataConnection.Open();try{//Do ... }finally{dataConnection.Close();}}
 

IDataConnection对象内置了自动管理连接打开与关闭的功能,上功的流程刚可以简化为:

数据操作方法:

IDataAccessor提供了Query和Execute两个不同重载的方法,Query用于实现数据查询业务,Execute用于实现操作更新修改业务,基于Query方法衍生了QueryScalar、QueryDataReader、QueryDataSet、QueryDataTable、QueryDictionary、QueryList说法,每一个衍生方法都对应于Query重载的某一种返回类型,在UDA中数据分别以Oject、IDataReader、DataSet、DataTable、IDictionary、IList返回,这里面有两个特殊的返回结果IDictionary、IList,IDictionary用于返回一条查询记录的键值对(字段名/字段值)、IList用于返回查询记录的第一列的值。Execute没有什么特殊的了。
案例介绍:
本文附带的例子演示UDA业务中除事务处理之后的业务,针对每个数据操作说法,我都写一个具体的例子方法,下面我贴上Main方法代码:
    static void Main(string[] args){System.Console.WriteLine("AgileEAS.NET平台UDA组件使用例子,按任务键开始...");System.Console.Read();System.Console.WriteLine("使用IDataReader的例子:");new UdaQuery().DemeGetDataReader();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("使用IDataSet的例子:");new UdaQuery().DemeGetDataSet();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("使用IDataTable的例子:");new UdaQuery().DemeGetDataTable();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("使用Dictionary的例子:");new UdaQuery().DemeGetDictionary();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("使用List的例子:");new UdaQuery().DemeGetList();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("使用Scalar的例子:");new UdaQuery().DemeGetScalar();System.Console.WriteLine("按任务键开始...");System.Console.Read();System.Console.WriteLine("数据更新的例子:");new UdaExecute().DemeExecute();System.Console.WriteLine("按任务键结束。");System.Console.Read();}
       

其他参考请参考源码的UdaQuery和UdaExecute两个类,例子运行效果如下:

本文例子就到这,在下文我将介绍AgileEAS.NET平台中的UDA的高级应用DataReader委托和事务委托。

有关本例子所涉及的数据表结构请参考基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义一文,有关数据对象模型定义文件、文档、DDL脚本请下载:http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本文代码下载:UDA.Demo1.rar。
链接
AgileEAS.NET平台开发指南-系列目录
AgileEAS.NET应用开发平台介绍-文章索引
AgileEAS.NET平台应用开发教程-案例计划
一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
AgileEAS.NET官方网站
敏捷软件工程实验室
QQ群:116773358

转载于:https://blog.51cto.com/agilelab/603009

一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-使用UDA操纵SQL语句...相关推荐

  1. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...

    前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们 ...

  2. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM中的查询

    前文回顾 前面的文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-演示ORM的基本操作一文给大家介绍了如果使用ORM实现数据的读取.插入.更新与删除基本业务也讲解了ORM开发基 ...

  3. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层...

    系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出 ...

  4. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录

    基实这个系统是我AgileEAS.NET平台应用开发教程-案例计划的详细分解,原来想着按前面文章的思路应用写,但是发布之前的想法有点乱,我就把他分解成两个系列,使用step-by-step的方式来降解 ...

  5. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示使用报表构建UI-入库业务查询模块...

    回顾与说明 前面我们把"商品字典"."商品入库"."商品库存查询"三个模块已经概括或者详细的演示完了,这些模块涉及到简单数据的增.删.修,也 ...

  6. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印...

    系列回顾 从上一篇文章一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)开始我带领大家进入WinForm篇,并且使用示例的形式详细的演示了数据 ...

  7. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-在UI中应用DataUIMapper组件...

    系列回顾 WinForm篇我用了一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)和一步一步教你使用AgileEAS.NET基础类库进行应用开 ...

  8. 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...

    通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本   版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 ...

  9. 教你一步一步用C语言实现sift算法、上

    原文:http://blog.csdn.net/v_july_v/article/details/6245939 引言:     在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的 ...

最新文章

  1. ORM版学员管理系统
  2. js实现-限时抢购倒计时间表
  3. 一张大图总结数据结构与算法
  4. 关于电商购物车与订单
  5. [振动力学] 课程考核报告:Matlab 实现邓克利法、瑞利法、里兹法、矩阵迭代法
  6. 使用 Postman 调试 HTTP(s) 接口
  7. Python各系统的安装
  8. 机器人到底会不会有情感?
  9. 软件设计文档国家标准—软件需求说明书(GB856T——88)
  10. ASCII三种进制对照表、二进制、字节
  11. 计算机桌面空白地方鼠标右击没有属性选项,电脑右键没有属性选项_电脑右键没有显卡属性...
  12. 扫码枪收银有手续费吗_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
  13. 阿里云访问控制——OSS——STS
  14. 微信图片信息存放搜狗输入法云端服务器怎么取消,搜狗输入法弹窗怎么去掉?搜狗输入法关闭弹窗的方法...
  15. datav(datav)
  16. Project 2013项目管理教程(3):建立任务间的依赖性
  17. Mac Navicat连接MySQL8.0.11出错:2003 - Can't connect to MySQL server on ……(61 Connection refused)
  18. ubuntu为脚本添加桌面图标
  19. 如何做到像百度云或者网易公开课一样动态更换APP启动图
  20. 3.10 Maya历法

热门文章

  1. onvif备忘录(1)--onvif简介及开发框架搭建
  2. 这几个常用的 Go 官方库,性能居然还不如三方开源库
  3. 从PHPer到Gopher要经历的一些转变
  4. android 生命周期流程图,Android Studio ——Service的生命周期
  5. 问题:pom文件飘红, parent.relativePath
  6. 使用jps来查看虚拟机状态
  7. 浅谈分布式一致性协议之3PC
  8. 三大前端框架,哪个框架组件间交互像js方法传值一样简单
  9. SpringCloud系列:分布式服务调用链跟踪整合Zipkin、RabbitMQ、Elasticsearch(二)
  10. 小明历险记:规则引擎drools教程一