在很久很久以前。2007年底,我曾发布过CYQ.Data.DLL,那时的学术氛围很浓,评论的也比较重

在那里,我曾做过一些简介与使用方法的帮助

在这个系列中,我将一步一步开源并讲解实现的过程,由于文章进行编辑,日期变了

以前旧文章地址为:http://www.cnblogs.com/cyq1162/archive/2009/11/05/968626.html

这里先简单介绍一下数据访问层的大体结构:

这里先上一张主要的图:

该访问层主要分三类:

一.自定义Table

1.自定义实现轻量级MDataTable,并实现IDataReader接口,以便可以直接绑定到DataGrid,Repeater等控件

主要数据包括

自定义数据单元格:MDataCell

自定义数据数据列集合:MDataColumns

自定义数据行:MDataRecord,继承并实现IDataRecord,以后在控件后台可以实现类型转换,并实现与MDataRow的隐式转换

2.数据主操作MDataRow,实现动态构建数据库表架构,并缓存表架构,同时实现数据的增删改查

MDataResult是枚举,返回为MDataRow操作的结果类型

二.自定义的Sql

1.主要自已简化的SQLHelper,并结构Log记录出错异常

DataType主要是数据库类型和C#类型之间的转换

ProcedureSql主要是一些存储过程,可以实现读取数据库表架构及相应的分页存储过程

OutPutData主要是提供生成数据库的表与视图与字段,会以枚举的形式存在,本数据方问层,会以枚举替代实体类的存在

三,Cache类

主要是缓存相应的表架构

--------------------------------------

说明,在接下来的讲解实例中,可能涉及到类的更名与移除

并会优化同时也会去掉一些多余的代码与函数

所以,本人会新建一个新的项目,重新写一次最新的项目,并提供下载

关于功能的可能更新,如下面的操作:

MDataRow mdr=new MDataRow(Table.Users);//Table.V_Users

mdr[Users.UserName].Value='cyq';

mdr.Update("id=1");

mdr.Close();

在这个示例中,如果Users为数据库,则Users.UserName枚举会直接转成(int)Users.UserName进行索引查询

如果为V_Users或为多表查询的数据,则Users.UserName枚举会转成Users.UserName.ToString()进行遍历查询

1.关于多表查询中,不仅仅限于视图,也支持构建的联合查询表,如:

string usersTable="(select u.* from users u left join topic t on u.id=t.uid) v_users";

MDataRow mdr=new MDataRow(usersTable);

mdr[Users.UserName].Value='cyq';

mdr.Update("id=1");

mdr.Close();

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:

http://www.cnblogs.com/cyq1162/archive/2009/11/06/1596424.html

CYQ.Data 轻量数据访问层(一) 概述相关推荐

  1. CYQ.Data 轻量数据访问层(五) 构造数据行

    有了数据结构单元DataCell之后,数据单元行也就很容易写了,因为,所有的数据单元加起来,就成了数据行了 于是,我们很轻易的写出了以下类: Code /**//// <summary> ...

  2. CYQ.Data 轻量数据访问层(八) 自定义数据表实现绑定常用的数据控件(中)

    2019独角兽企业重金招聘Python工程师标准>>> 继上一节之后,我们开始寻找绑定之法 先是一回想,我们平常是拿什么绑定到数据控件的:List<实体类>,DataTa ...

  3. CYQ.Data 轻量数据访问层(四) 构造数据单元列

    有了数据结构单元的结构类之后,数据单元列集合就得很容易写了,因为,所有的数据单元结构加起来,就成了数据单元列集合了 于是,我们很轻易的写出了以下类:  /// <summary>      ...

  4. cyq.data 连接mysql_CYQ.Data 轻量数据访问层(一) 概述

    在很久很久以前.2007年底,我曾发布过CYQ.Data.DLL,那时的学术氛围很浓,评论的也比较重 在那里,我曾做过一些简介与使用方法的帮助 在这个系列中,我将一步一步开源并讲解实现的过程,由于文章 ...

  5. CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)

    本章起,将续章讲解整框架当初的设计思路: 本章既为续章,说明我以前写过,是的,以前我写过内部整个MDataTable的构造,不过,当初匆匆写完后, 最后一步的实现MDataTable绑定GridVie ...

  6. CYQ.Data 轻量数据层之路 使用篇三曲 MAction 取值赋值(十四)

    上一篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三) 内容概要 本篇继续上一篇内容,本节介绍所有取值与赋值的相关操作. 1:原生:像操作Row一样 2:扩展:对UI操 ...

  7. CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)

    上一篇:CYQ.Data 轻量数据层之路 使用篇四曲 MAction 增删改(十五) 本篇内容概要 本篇继续上一篇内容,本节介绍MProc 类的相关操作. 1:MProc 存储过程操作 2:MProc ...

  8. CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)

    所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大. 但是外面调用 ...

  9. CYQ.Data 轻量数据层之路 使用篇-辅助工具枚举生成器 视频 C (二十)

    说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 优雅V1.4 辅助工具(十)   的附加视频教程. 本次视频介绍了使用工具创建存储过程/生成日志表/生成枚举文件等相关操作,同时以示例实 ...

最新文章

  1. 安卓 python termux_Android Termux 安装 Linux 就是这么简单
  2. js 调 CDHtmlDialog API
  3. python爬虫库的功能_Python学习爬虫掌握的库资料大全和框架的选择的分析
  4. mysql8创建用户并授权_新版mysql8.0.12添加用户并设置权限避免踩坑!
  5. html中表格布局还是div布局,Table布局 VS Div+CSS布局,选哪个?
  6. 爬虫-获取访问后可见的页面-get方法cookies参数形式
  7. Hibernate中的命名SQL查询
  8. Linux c++ udp按包发送接收文件
  9. curl 安装_实用干货——如何使用curl命令下载文件
  10. Spring MVC Rest 客户端 RestTemplate 详解
  11. 电脑用电量_为什么换了智能电表后,我家用电量一下子多了这么多呢?
  12. python--修改证件照的大小
  13. BZOJ#4816. [Sdoi2017]数字表格
  14. python中return返回值怎么累加_Python学习笔记函数之返回值和return语句
  15. Web滚动字幕(MARQUEE示例)
  16. 2个DIV制作十字架
  17. 土地利用规划之平时作业二
  18. vsphere client 60天问题
  19. MYSQL报1265和1366错误
  20. 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...

热门文章

  1. 目标检测--Feature Pyramid Networks for Object Detection
  2. 目标检测--Wide-Residual-Inception Networks for Real-time Object Detection
  3. matlab心电图诊断系统,ECG-diag MATLAB心电图自动诊断程序 联合开发网 - pudn.com
  4. java定时关机源码_java实现电脑定时关机的方法
  5. 为什么要低温保存_渔之歌科普课堂:冷冻食品为什么要规定零下18摄氏度冷藏?...
  6. MYSQL5-7版本sql_mode=only_full_group_by问题
  7. 今天带你们走进缓存的雪崩、击穿、穿透基本概念
  8. oracle celient 作用,WebLogic Server 10.3 SSL配置及SSL协议传输的WebSevice调用.doc
  9. php 导出excel 特殊字符,export 导出的excel sheet名字包含特殊字符
  10. C语言中缺少link文件,如何在link文件中给某个C文件的bss分配单独的段?