天天看點

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