前言:
一直都是发布版本才写文章,这次为抢先体验版本[v2.5]做一下简单的功能介绍
以下进行功能更新说明[相比v2.0版本]:

1:修正debuginfo属性在异常发生时无法取得操作语句的问题
2:maction增加bind方法可以轻松绑定dropdownlist等控件
3:mdatatable增加tolist<t>泛型方法
4:修正mdatatable的tojson方法
5:增加cyq.data.orm.ormbase抽象基类[为传统实体型orm提供支持]

接着为功能进行示例操作,所有编写代码均放在page_load中:
一:调试信息输出
1:编写代码如下
maction action = new maction(tablenames.users);
if (!action.fill("产生错误"))
{
response.write(action.debuginfo);
}
2:于是默认抛出异常
3:修改配置文件,启用日志记录,则不再抛异常
<appsettings><add key="iswritelog" value="true"/></appsettings>
4:这时候再运行,输出了debuginfo
说明:
从上图可以看到所有数据库已执行的sql语句,非常方便进行调试。
二:maction的bind功能演示
1:编写代码如下
new maction(tablenames.users).bind(ddlusername).close();

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等

2:演示结果如图
3:对应的html

<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>

三:mdatatable的tolist<t>方法演示
1:增加实体users
usersdemo 实体类
2:编写代码如下

mdatatable table = action.select();
action.close();
list<usersdemo> listdemo = table.tolist<usersdemo>();//转成泛型实体列表
gvusers.datasource = listdemo;
gvusers.databind();

3:演示结果
四:mdatatable的tojson方法演示
using (maction action = new maction(tablenames.users))
response.write(action.select().tojson());
2:输出结果

{"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"}]}

五:支持传统orm访问方式示例演示
1:实体继承cyq.data.orm.ormbase

public class usersdemo :cyq.data.orm.ormbase
{
public usersdemo()
{
base.setinit(this, "users", "conn");
}
//...省略下面积的实体属性
}

1:需要继承基类:cyq.data.orm.ormbase
2:需要在构造函数初始化base.setinit(this,"表名","数据库链接字符串/链接配置名称/为空时默认为conn配置项");
2:编写代码演示[添加/更新/删除/查询/列表查询与绑定]

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();

3:结果演示
a:原来表数据
b:操作后结果数据
结言:
谢谢大家支持与喜欢,吾将持续做好框架更新工作继续前进。
版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:
http://www.cnblogs.com/cyq1162/archive/2010/10/14/1851014.html