cyq.data 连接mysql_CYQ.Data 轻量数据访问层(一) 概述
在很久很久以前。2007年底,我曾发布过CYQ.Data.DLL,那时的学术氛围很浓,评论的也比较重
在那里,我曾做过一些简介与使用方法的帮助
在这个系列中,我将一步一步开源并讲解实现的过程,由于文章进行编辑,日期变了
这里先简单介绍一下数据访问层的大体结构:
这里先上一张主要的图:
该访问层主要分三类:
一.自定义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();
cyq.data 连接mysql_CYQ.Data 轻量数据访问层(一) 概述相关推荐
- CYQ.Data 轻量数据访问层(一) 概述
在很久很久以前.2007年底,我曾发布过CYQ.Data.DLL,那时的学术氛围很浓,评论的也比较重 在那里,我曾做过一些简介与使用方法的帮助 在这个系列中,我将一步一步开源并讲解实现的过程,由于文章 ...
- CYQ.Data 轻量数据访问层(八) 自定义数据表实现绑定常用的数据控件(中)
2019独角兽企业重金招聘Python工程师标准>>> 继上一节之后,我们开始寻找绑定之法 先是一回想,我们平常是拿什么绑定到数据控件的:List<实体类>,DataTa ...
- CYQ.Data 轻量数据访问层(四) 构造数据单元列
有了数据结构单元的结构类之后,数据单元列集合就得很容易写了,因为,所有的数据单元结构加起来,就成了数据单元列集合了 于是,我们很轻易的写出了以下类: /// <summary> ...
- CYQ.Data 轻量数据访问层(五) 构造数据行
有了数据结构单元DataCell之后,数据单元行也就很容易写了,因为,所有的数据单元加起来,就成了数据行了 于是,我们很轻易的写出了以下类: Code /**//// <summary> ...
- cyq.data 连接mysql_CYQ.Data 轻量数据层之路 优雅V1.4 辅助工具发布
类型:磁盘工具大小:2.7M语言:中文 评分:4.2 标签: 立即下载 前言说明 本次发布的辅助工具,只是为简化一些操作,其功能基本为CYQ.Data.SQL名称空间下的OutPutData类提供. ...
- cyq.data 连接mysql_CYQ.Data 轻量数据层之路 使用篇一曲 裸身走天涯(十二)
其实本来是不想写使用帮助的,因为在以下的文章中,都有大量的示例存在: 不过很多人还是很懒啊,一进群就用问怎么用. 发个文章路径让其看吧,又说太麻烦,使用复杂,于是想了想,还是写写使用教程,让这部分懒人 ...
- cyq.data 连接mysql_CYQ.Data 轻量数据层之路 框架如何应对数据库变化
内容: 请问大家是如何处理以下问题: Model是数据库表的实体映射,当系统的需求出现新的变换,例如增加新的功能时数据库需要增加新的字段, 或需要去掉和更换某些旧的功能,那么对应的数据库字段肯定是会修 ...
- cyq.data 连接mysql_cyq.data 常见使用方法
配置数据库链接:(这只是其中一种方式) AppConfig.DB.CommandTimeout = 800; AppConfig.DB.DefaultConn = "数据库链接地址" ...
- cyq.data 连接mysql_CYQ.Data V5文本数据库技术原理解密
前言: 这两天有点感冒状态,除了以前折腾 微博粉丝精灵 腾到三更,最近也在折腾个别工具到四更,偶尔心来心潮,赶紧写写文章,最近有很多朋友对CYQ.Data V5里的文本数据库感兴趣,这里就给大伙说下文 ...
最新文章
- matlab球落点的数学建模,MATLAB数学建模:智能优化算法-人工鱼群算法
- 爬取了BOSS直聘、拉勾等近1000+招聘需求,总结出3年+Java开发的高频技术需求
- bat获取命令返回值_全网都在找的redis字符串命令,总结在这了
- 人工智能系统Google开源的TensorFlow官方文档中文版
- Java通过微信公众号获取地理位置信息
- 倾斜摄影OSGB转换为3DTiles
- [译] PWA 实战:Tinder 的性能优化之道
- 15.	Zigbee应用程序框架开发指南 - 应用程序框架插件
- 【图文并茂】一文讲透Dubbo负载均衡之最小活跃数算法
- linux如何卸载lightdm,告诉你Ubuntu安装LightDM的方法及命令
- python 操作鼠标和键盘
- 射频电路板设计常见的问题分析和解决办法
- Element el-select 选择器(下拉框)详解
- 视频号扩展链接一键转换
- Luogu P1535 【游荡的奶牛】
- ysdk接入,支付提示:系统繁忙,请稍后再试 (1003-498686-498686)
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛A题Wasserstein Distance
- javaio流_一文带你看懂JAVA IO流,史上最全面的IO教学啦
- 在1-10中选择一个数,输出x+xx+xxx+xxx....x之和,如:数字为2,则2+22=24
- JAVA笔记整理(1):进制转换
热门文章
- 分销系统开发如何做一级分销?
- Part1:3D虚拟化技术透析及竞争分析
- 基于ssm+vue的研究生推免报名面试系统 计算机毕业设计
- 当游戏直播也要授权的背后:利益之争让各路人马杀红眼
- 【C++之string方法】字符串反转
- EDIUS中的3D图层效果该如何制作
- 华为lite wearable和wearable开发的区别,可穿戴和轻可穿戴应用区别
- SQL第三练:排序 修改
- Android 依赖注入框架 Dagger2使用
- 乌特勒支大学计算机科学世界排名,2019-2020乌得勒支大学世界排名多少【QS最新第120名】...