前言:
一直都是釋出版本才寫文章,這次為搶先體驗版本[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