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

    xiaoxiao2022-07-09  201

    本系列所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引

    本系列所有相关下载:CYQ.Data 轻量数据层之路 bug反馈、优化建议、最新框架下载

    前言:

     

    一直都是发布版本才写文章,这次为抢先体验版本[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:编写代码如下

            MAction action  =   new  MAction(TableNames.Users);         MDataTable table  =  action.Select();         action.Close();         List < UsersDemo >  listDemo  =  table.ToList < UsersDemo > (); // 转成泛型实体列表         gvUsers.DataSource  =  listDemo;         gvUsers.DataBind();

     

    3:演示结果

     

    四:MDataTable的ToJson方法演示

     

    1:编写代码如下

             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访问方式示例演示

    说明:本功能由 圣殿骑士 留言引发。

    引用圣殿骑士:呵呵,第一次过来支持!你这个轻量数据层框架如果能同时支持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

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)