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

继上一节实现MDataTable之后,我们再为MDataTable加上一个NewRow()方法,以便能构造出该表的新行

如下:


 public MDataRow NewRow()
        {
            MDataRow mdr = new MDataRow();
            mdr.TableName = _TableName;
            MDataCellStruct mdcStruct = null;
            for (int i = 0; i < this.Columns.Count; i++)
            {
                mdcStruct=this.Columns[i];
                mdr.Add(new MDataCell(ref mdcStruct));
            }
            return mdr;
        }

 

OK,接下来,我们新建一个Demo的web工程,在Default.aspx中随便拖一个GridView控件进去,然后在Page_Load里写下以下代码:


MDataTable table=new MDataTable("myTableName");
            table.Columns.Add("A", SqlDbType.NVarChar);
            table.Columns.Add("B",SqlDbType.NVarChar);

            MDataRow mdr = table.NewRow();
            mdr[0].Value = "helloA";
            mdr[1].Value = "111111";
            table.Add(mdr);
            GridView1.DataSource = table;
            GridView1.DataBind();

 

敲mdr["A"]本来是要这样敲的,不支持字符串索,只好敲了mdr[0]了,这里顺路为MDataRow加上一个字符串索引,如下:


public MDataCell this[string Key]
        {
            get
            {
                MDataCell dataCell = null;
                for (int i = 0; i < base.Count; i++)
                {
                    if (base[i].ColumnName == Key)
                    {
                        dataCell = base[i];
                        break;
                    }
                }
                return dataCell;
            }
        }

 

OK,就这样添加了两个列头,又添加了一行数据,运行后看结果如下:

TableName ConnectionString Capacity Count
myTableName   4 2

晕,数据根本不是我们想要的....

上面显示的列,有三个都是Table的属性,还有一个ConnectionString是Table的行的属性

吓,咋就混在一块了。。。。

于是,我们开始动手寻找绑定之法...

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

http://www.cnblogs.com/cyq1162/archive/2009/11/10/1599425.html

时间: 2024-09-09 04:27:11

CYQ.Data 轻量数据访问层(七) 自定义数据表实现绑定常用的数据控件(上)的相关文章

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

继上一节之后,我们开始寻找绑定之法 先是一回想,我们平常是拿什么绑定到数据控件的:List<实体类>,DataTable,DataSet,DataView之类的, 而写法也就这么个样: xxxx.DataSource=List<实体类>....等 XXxx.DataBind(); 于是,我们就从这些东西入手了,要不然也措不着头脑该往哪儿找 DataSource这东西要给赋值,那我们打开reflector.exe看看这里面究竟有点什么东西先 按下F3,搜索Repeater,当然也可以

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

还记得当初以为似找到:行数组Copy之后,再array.GetEnumerator();就可行.   实际操作之后,发现不可行,于是,这不可行的路就不写了,避免浪费大伙精力看了. 以下讲可行之路: 通过Reflector找到SqlDataReader类,因为它也是可绑定之一的数据源,虽然直拉绑定往往造成链接未关闭事件. 通过研究:   public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord

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

本章起,将续章讲解整框架当初的设计思路: 本章既为续章,说明我以前写过,是的,以前我写过内部整个MDataTable的构造,不过,当初匆匆写完后, 最后一步的实现MDataTable绑定GridView/DataList/Repeater还差一点,这章续上! 这里列出我以前写过的关于构造自定义MDataTable系列文章: 备注:以下内容为早期所写,文字少,代码多,有不明之处,欢迎在文章后面留言!   1:CYQ.Data 轻量数据访问层(二) 构造数据单元(上) 2: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 轻量数据层之路 华丽V1.3版本 框架开源

本篇对框架开源进行说明:   提前说明: 1:最近有很多友人没有留言就加群了,导致被拒绝,这此说声抱歉啦.    不过规则还是要遵守的,毕竟人数有限.    如果只是想着可有可无的看,下面有一份反编绎源码,基本也不影响高手查看了. 2:另外也有个别留了言没加群的,也只能说声音抱歉了,源码不会发到指定的邮箱.    源码会发送到指定邮箱的情况:仅限于公司名义,同时站内信有消息,才会特别去发邮件的.       本次开源针对最新版本V1.3版本,相关更新见:CYQ.Data 轻量数据层之路 华丽升级

CYQ.Data 轻量数据层之路 开篇介绍(一)

PS:本系列已太旧,仅供回忆: 项目使用请看V5系列:http://www.cnblogs.com/cyq1162/category/852300.html   近段时间,写: Silverlight+WCF 新手实例 象棋 专题索引 系列,近四十篇的长篇,写到有一种走火入魔的感觉! 虽然四十篇终结时,离:Silverlight+WCF 新手实例 象棋 在线演示 还有一小段距离,不过整体框架与功能都完整的开源讲完了! 为了避免暂时的走火入魔,只好先写写别的系列文章,关于象棋系列后续情况,先暂缓小

CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)

继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源]   N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力求让大伙相对满意: 对于:bug反馈.优化建议.及最新框架版本下载见:CYQ.Data 轻量数据层之路 bug反馈/优化建议/框架下载 升级说明: 本次升级只是针对易用性增加功能或优化代码及方法,并未发现V1.3版本存在任何bug, 因此,对于V1.3版本,大伙可放心使用,同时也已开放源码. 若

CYQ.Data 轻量数据层之路 MDataTable 绑定性能优化之章(十一)

昨天jyk进群后,用Microsoft Application Center Test 对CYQ.Data 框架进行进行了一下压力测试 然后截了几张图上来,只有纯图如下: 1:使用了框架:sql 2000的分页存储过程[临时表分的页]: 2:把存储过程直接换成select语句: 3:他的框架测试结果: 4:这是测试结果了. 以下是说明: 1.DataTable :714次/秒 2.MDataTable:559 次/秒 (简单存储过程) 3.MDataTable:500 次/秒 (完整存储过程)

CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]

前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.0 版本发布 ,又过去一个来月了,不过也过了一个新年了.   由于过年原因,因此框架也没多折腾什么,只是年前年后顺路把SQLite,MySQL两种数据库给支持上了.   提示:基于网友的提醒,本次版本发布带CYQ.Data.xml,增加了方法的中文提示.   下面看一下新版本的修改记录 1:MAction的构造函数允许从MDataRow加载 2:MutilLanguage在设置Cookie时也同时设置语言标识 3:MutilLangua