CYQ.Data 轻量数据访问层(二) 构造数据单元(上)

DataTable,你有多丰富:

轻轻的打开Reflector.exe,按下F3搜索,输入DataTable,双击定位,右键,Disassemble之后,

悄悄的点一下最下面的 Expand Methods,再从容的把它copy出来,我们才发现。。6000多行的代码

我们常用的DataTable一个类,才用了6000多行代码实现,跟我们以前写的,一个类写到一千多,就觉得有点过了

大巫见小巫啊!

 

 

解析:

当然了,不是说一个类代码越多,性能就一定不好。至少我们还是那么多人前拥后挤的在继续使用。

大而广,考虑详细,是因为面对的人群多。

针对目前这个数据访问层中,我们所需要的功能,并不需要那么多,我们只需要最常用的功能即可了,

即可以把表直接绑定控件,并访问数据行,数据列,数据单元和数据的数据库类型,

 

 

所以:

我们开始了自定义,在自定义中,我们并不继承和DataTable相关的东西。我们一步一步的构建属于自己的轻量级的Table类

 

 

下面开始构造自己的MDataTable系列类:

一.单元格:MDataCell

我们先来看我们常用的表现的一行数据,如下图:

描述:

图片上一览,第一行是列头,接下来全是数据行,那么单元格应该包含哪些内容?这,其实是个问题。如果我们从界面上看,一个单独的单元格,就只有Value了,

可是如果只是Value,那它又缺少了意义,因为你不知道它是属于什么列,简单说,如果没有列头,你的数据本身的意义,就变的很难理解,

除非这个值有很深的解释意义包含在里头。

 

说明:

因此,一个单元格还应该包括一个列头解释,于是。就会出现这么一个现实,如果一个单元格是由头和值组成的,那么每一行数据,都会包括重复的列头。

我们再仔细观察那图,实际上,只有一个列头,其余都是值...于是,在这里,就产生了一个可以思考的问题。

单元格需要由头和值组成,可是,又要保证数据再多,也只能存在一个表头,怎么将这个问题转化在设计的类中??

 

 

下节解说!

 

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

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

时间: 2024-09-20 19:30:30

CYQ.Data 轻量数据访问层(二) 构造数据单元(上)的相关文章

CYQ.Data 轻量数据层之路 抢先体验版本功能说明演示 (二十九)

本系列所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 本系列所有相关下载:CYQ.Data 轻量数据层之路 bug反馈.优化建议.最新框架下载 前言:   一直都是发布版本才写文章,这次为抢先体验版本[V2.5]做一下简单的功能介绍   以下进行功能更新说明[相比V2.0版本]: 1:修正DebugInfo属性在异常发生时无法取得操作语句的问题 2:MAction增加Bind方法可以轻松绑定DropDownList等控件 3:MDataTable增加ToList<T>泛型方

CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)

上一篇:CYQ.Data 轻量数据层之路 使用篇一曲 裸身走天涯(十二)   前言说明: 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要:1:单行数据操作 Fill 操作 GetCount操作.2:多行数据操作 Select 操作3:列表绑定控件操作 配合分页控件4:多表查询及绑定 视图及自定义SQL     单行数据操作   一:Fill 填充方法,单行查询 方法原形:public bool Fill(object where) 示例1:直传ID MAction action 

CYQ.Data 轻量数据层之路 使用篇一曲 裸身走天涯(十二)

其实本来是不想写使用帮助的,因为在以下的文章中,都有大量的示例存在:   CYQ.Data 轻量数据层之路 应用示例一 留言版(四) CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五) CYQ.Data 轻量数据层之路 应用示例二 在线聊天(六) CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)   不过很多人还是很懒啊,一进群就用问怎么用. 发个文章路径让其看吧,又说太麻烦,使用复杂,于是想了想,还是写写使用教程,让这部分懒人速成一下.   当前最新版本

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

所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引   前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大. 但是外面调用方式仍保持一致向下兼容,因此若从原来V1.N版本升级到2.N版本,只需要轻轻更换CYQ.Data.DLL即可,界面代码不需要改变.   疑问? 最近26号才刚发布了V1.5.5,怎么才3天又发布了2.0版本?就这么点时间改动就很大,那不是很不稳定? 解疑: V1.5.5版本是拿V1.5版本的源码

CYQ.Data 轻量数据层之路 应用示例二 在线聊天(六)

继上一篇:CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五),本篇趁周末而且是下班时间看贴人不多,低调让其出手应用一下: 同样为了能一篇介绍完一个示例,我精简挑选了一下,本次的示例为:注册+登陆+在线聊天[省去了私聊部分] 在看此文示例之前,请先看:CYQ.Data 轻量数据层之路 应用示例篇(四) --因为注册+登陆从那直接Copy的,这节就省过了.   当前环境同样是:VS2005+SQL2005,以下进入正题: 一:数据库 起名:Chat 两个表:Users+Message,上

CYQ.Data 轻量数据层之路 应用示例三 Aop切入留言系统--操作日志(二十七)

前言: 在8月份时,那时曾用CYQ.Data 1.2版本演示过一个完整的示例,留言版:详见:CYQ.Data 轻量数据层之路 应用示例一 留言版(四) 本篇将使用2.N系列版本,在不改动原来留言版系统一行代码的情况下,实现其数据库操作日志功能. 最新版本下载见:CYQ.Data 轻量数据层之路 bug反馈.优化建议.最新框架下载     正文步骤:   一:建表 1:增加一个日志操作表[ActionLogs],这个少不了,表结构如下: 2:创建表的数据库脚本如下: 创建ActionLogs表  

CYQ.Data 轻量数据层之路 使用篇-MAction 数据查询 视频 E (二十二)

说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)   的附加视频教程-下半部分. 本次视频介绍了: 1:GridView/DataList/Repeater控件配合分页控件实现列表绑定. 2:利用视图实现多表操作 3:得用自定SQL语句实现多表操作.   这本次录制的视频上传于-秋色园: 注意如果要看清晰版本,要点击视频下面的:查看原始大小的动画 本次视频大小分辨率为:1024*768,依旧坚持走高清.无码的路线,为观众提供良好视觉享受

CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)

说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)   的附加视频教程. 本次视频介绍了MProc对存储过程与SQL语句的操作,由于操作不甚,本节没有音乐了,各位自己放歌听了.   这本次录制的视频上传于-秋色园: 注意如果要看清晰版本,要点击视频下面的:查看原始大小的动画 本次视频大小分辨率为:1024*768,依旧坚持走高清.无码的路线,为观众提供良好视觉享受. 同样:如果直接下载观看时最好设置好宽和高,不然清晰度就没保证了.  

CYQ.Data 轻量数据层之路 使用篇-MAction 增删改 视频[高清无码带音乐-千王之王] G (二十六)

说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇四曲 MAction 增删改(十五)  的附加视频教程. 本次视频介绍了MAction对表的操作: 1:如何添加数据. 2:如何删除数据 3:如何更新数据.   这本次录制的视频上传于-秋色园: 注意如果要看清晰版本,要点击视频下面的:查看原始大小的动画 本次视频大小分辨率为:1024*768,依旧坚持走高清.无码的路线,为观众提供良好视觉享受. 同样:如果直接下载观看时最好设置好宽和高,不然清晰度就没保证了.   swf文件

CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)

前言: 继正式发布V2.0到现在,已30来天了,一直静悄悄的都没发布什么版本 中间仅有插播了一下:CYQ.Data 轻量数据层之路 V2.5 抢先体验版本功能说明演示 (二十九)   只因最近花了很多时间在重构一个以前的博客,目前已完成其基础功能,不日将发布相关文章. 提前预览网址:http://www.cyqdata.com/     本次版本升级内容大体说明: 1:Access应用调整2:修正对:uniqueidentifier.ntext.text.Image等几个类型的应用.3:扩展缓存