CYQ.Data 轻量数据访问层(一) 概述
在很久很久以前。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 轻量数据访问层(一) 概述相关推荐
- CYQ.Data 轻量数据访问层(五) 构造数据行
有了数据结构单元DataCell之后,数据单元行也就很容易写了,因为,所有的数据单元加起来,就成了数据行了 于是,我们很轻易的写出了以下类: Code /**//// <summary> ...
- CYQ.Data 轻量数据访问层(八) 自定义数据表实现绑定常用的数据控件(中)
2019独角兽企业重金招聘Python工程师标准>>> 继上一节之后,我们开始寻找绑定之法 先是一回想,我们平常是拿什么绑定到数据控件的:List<实体类>,DataTa ...
- CYQ.Data 轻量数据访问层(四) 构造数据单元列
有了数据结构单元的结构类之后,数据单元列集合就得很容易写了,因为,所有的数据单元结构加起来,就成了数据单元列集合了 于是,我们很轻易的写出了以下类: /// <summary> ...
- cyq.data 连接mysql_CYQ.Data 轻量数据访问层(一) 概述
在很久很久以前.2007年底,我曾发布过CYQ.Data.DLL,那时的学术氛围很浓,评论的也比较重 在那里,我曾做过一些简介与使用方法的帮助 在这个系列中,我将一步一步开源并讲解实现的过程,由于文章 ...
- CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)
本章起,将续章讲解整框架当初的设计思路: 本章既为续章,说明我以前写过,是的,以前我写过内部整个MDataTable的构造,不过,当初匆匆写完后, 最后一步的实现MDataTable绑定GridVie ...
- CYQ.Data 轻量数据层之路 使用篇三曲 MAction 取值赋值(十四)
上一篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三) 内容概要 本篇继续上一篇内容,本节介绍所有取值与赋值的相关操作. 1:原生:像操作Row一样 2:扩展:对UI操 ...
- CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)
上一篇:CYQ.Data 轻量数据层之路 使用篇四曲 MAction 增删改(十五) 本篇内容概要 本篇继续上一篇内容,本节介绍MProc 类的相关操作. 1:MProc 存储过程操作 2:MProc ...
- CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)
所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大. 但是外面调用 ...
- CYQ.Data 轻量数据层之路 使用篇-辅助工具枚举生成器 视频 C (二十)
说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 优雅V1.4 辅助工具(十) 的附加视频教程. 本次视频介绍了使用工具创建存储过程/生成日志表/生成枚举文件等相关操作,同时以示例实 ...
最新文章
- 安卓 python termux_Android Termux 安装 Linux 就是这么简单
- js 调 CDHtmlDialog API
- python爬虫库的功能_Python学习爬虫掌握的库资料大全和框架的选择的分析
- mysql8创建用户并授权_新版mysql8.0.12添加用户并设置权限避免踩坑!
- html中表格布局还是div布局,Table布局 VS Div+CSS布局,选哪个?
- 爬虫-获取访问后可见的页面-get方法cookies参数形式
- Hibernate中的命名SQL查询
- Linux c++ udp按包发送接收文件
- curl 安装_实用干货——如何使用curl命令下载文件
- Spring MVC Rest 客户端 RestTemplate 详解
- 电脑用电量_为什么换了智能电表后,我家用电量一下子多了这么多呢?
- python--修改证件照的大小
- BZOJ#4816. [Sdoi2017]数字表格
- python中return返回值怎么累加_Python学习笔记函数之返回值和return语句
- Web滚动字幕(MARQUEE示例)
- 2个DIV制作十字架
- 土地利用规划之平时作业二
- vsphere client 60天问题
- MYSQL报1265和1366错误
- 基于matlab的语音信号去噪毕业论文,MATLAB的FIR数字滤波器语音信号的去噪研究和仿真...
热门文章
- 目标检测--Feature Pyramid Networks for Object Detection
- 目标检测--Wide-Residual-Inception Networks for Real-time Object Detection
- matlab心电图诊断系统,ECG-diag MATLAB心电图自动诊断程序 联合开发网 - pudn.com
- java定时关机源码_java实现电脑定时关机的方法
- 为什么要低温保存_渔之歌科普课堂:冷冻食品为什么要规定零下18摄氏度冷藏?...
- MYSQL5-7版本sql_mode=only_full_group_by问题
- 今天带你们走进缓存的雪崩、击穿、穿透基本概念
- oracle celient 作用,WebLogic Server 10.3 SSL配置及SSL协议传输的WebSevice调用.doc
- php 导出excel 特殊字符,export 导出的excel sheet名字包含特殊字符
- C语言中缺少link文件,如何在link文件中给某个C文件的bss分配单独的段?