天天看点

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

前言:

一直都是发布版本才写文章,这次为抢先体验版本[v2.5]做一下简单的功能介绍

以下进行功能更新说明[相比v2.0版本]:

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

1:修正debuginfo属性在异常发生时无法取得操作语句的问题

2:maction增加bind方法可以轻松绑定dropdownlist等控件

3:mdatatable增加tolist<t>泛型方法

4:修正mdatatable的tojson方法

5:增加cyq.data.orm.ormbase抽象基类[为传统实体型orm提供支持]

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

接着为功能进行示例操作,所有编写代码均放在page_load中:

一:调试信息输出

1:编写代码如下

        maction action = new maction(tablenames.users);

        if (!action.fill("产生错误"))

        {

            response.write(action.debuginfo);

        }

2:于是默认抛出异常

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

3:修改配置文件,启用日志记录,则不再抛异常

<appsettings><add key="iswritelog" value="true"/></appsettings>

4:这时候再运行,输出了debuginfo

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

说明:

从上图可以看到所有数据库已执行的sql语句,非常方便进行调试。

二:maction的bind功能演示

1:编写代码如下

new maction(tablenames.users).bind(ddlusername).close();

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

bind方法有三个重载方法:

public maction bind(object control)

public maction bind(object control, string where)

public maction bind(object control, string where, object text, object value)

说明:前面两个方法按约定取[控件id(去掉三个字母前缀)做为text字段+id为value字段]

control参数支持继承listcontrol的所有控件如:drowdownlist/checkboxlist/radiobuttonlist等

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

2:演示结果如图

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

3:对应的html

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

<select name="ddlusername" id="ddlusername">

    <option value="1">路过秋天</option>

    <option value="2">狼robot</option>

    <option value="3">深蓝医生</option>

    <option value="4">天才123</option>

    <option value="5">天才123444</option>

    <option value="9">goodboy</option>

    <option value="17">goodboy</option>

</select>

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

三:mdatatable的tolist<t>方法演示

1:增加实体users

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

usersdemo 实体类

2:编写代码如下

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

        mdatatable table = action.select();

        action.close();

        list<usersdemo> listdemo = table.tolist<usersdemo>();//转成泛型实体列表

        gvusers.datasource = listdemo;

        gvusers.databind();

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

3:演示结果

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

四:mdatatable的tojson方法演示

        using (maction action = new maction(tablenames.users))

            response.write(action.select().tojson());

2:输出结果

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

{"count":"7","error":"","success":"true",

"data":[{"id":"1","username":"路过秋天","password":"http://cyq1162.cnblogs.com","createtime":"2010-8-21 14:01:07"},

{"id":"2","username":"狼robot","password":"http://cyq1162.cnblogs.com","createtime":"2010-8-21 14:04:57"},

{"id":"3","username":"深蓝医生","password":"http://cyq1162.cnblogs.com","createtime":"2010-8-21 14:05:44"},

{"id":"4","username":"天才123","password":"http://cyq1162.cnblogs.com","createtime":"2010-9-4 14:57:28"},

{"id":"5","username":"天才123444","password":"http://cyq1162.cnblogs.com","createtime":"2010-9-4 15:00:20"},

{"id":"9","username":"goodboy","password":"abc","createtime":"2010-10-13 16:51:58"},{"id":"17","username":"goodboy","password":"333","createtime":"2010-10-13 17:09:34"}]} 

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

五:支持传统orm访问方式示例演示

1:实体继承cyq.data.orm.ormbase

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

public class usersdemo :cyq.data.orm.ormbase

{

    public usersdemo()

    {

        base.setinit(this, "users", "conn");

    }

    //...省略下面积的实体属性

}

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

1:需要继承基类:cyq.data.orm.ormbase

2:需要在构造函数初始化base.setinit(this,"表名","数据库链接字符串/链接配置名称/为空时默认为conn配置项");

2:编写代码演示[添加/更新/删除/查询/列表查询与绑定]

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

 protected void page_load(object sender, eventargs e)

        usersdemo myuser = new usersdemo();

        myuser.username = "路过秋天-博客园";

        myuser.password = "http://cyq1162.cnblogs.com";

        myuser.insert();//插入一条数据

        myuser.password = "我更改了密码";

        myuser.update();

        myuser.delete(17);//删除id=17的数据

        if (myuser.fill(9))//单数据填充

            response.write(myuser.username);

        myuser.select().bind(gvusers);//查询users表所有数据并绑定到grivdview控件

        list<usersdemo> entitylist = myuser.select().tolist<usersdemo>();

        gvusers2.datasource = entitylist;//转泛型再绑定

        gvusers2.databind();

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

3:结果演示

a:原来表数据

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

b:操作后结果数据

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

结言:

谢谢大家支持与喜欢,吾将持续做好框架更新工作继续前进。

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

http://www.cnblogs.com/cyq1162/archive/2010/10/14/1851014.html