当前位置: 首页 > news >正文

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

本系列所有文章索引: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();

说明:

复制代码
ExpandedBlockStart.gif
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

复制代码
ExpandedBlockStart.gif
< 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:编写代码如下

复制代码
ExpandedBlockStart.gif
        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:输出结果

复制代码
ExpandedBlockStart.gif
{"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:编写代码演示[添加/更新/删除/查询/列表查询与绑定]

复制代码
ExpandedBlockStart.gif
  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

相关文章:

  • 性能测试解惑之并发压力
  • AWS CTO:“我真心讨厌跟软件工具供应商打交道”
  • 思科发现英特尔集成显卡驱动存在安全漏洞 可任意执行代码
  • 为何科技独角兽接连上市
  • 秒表---框架搭建
  • 【转】maven命令-P 参数引发的思考
  • Chapter3_操作符_关系操作符
  • 安全抽象:网络安全生态系统从复杂臃肿到有效自动化的发展之道
  • loadrunner
  • Linux 添加硬盘设备
  • 阿里云oss教程
  • 2013-2014年度总结
  • 关于数据库连接的一些小知识点
  • 解释器模式
  • 常见错误及解决方案
  • CentOS从零开始部署Nodejs项目
  • JavaScript类型识别
  • Laravel5.4 Queues队列学习
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • magento2项目上线注意事项
  • React的组件模式
  • spring boot 整合mybatis 无法输出sql的问题
  • Tornado学习笔记(1)
  • web标准化(下)
  • 测试开发系类之接口自动化测试
  • 复杂数据处理
  • 新版博客前端前瞻
  • #DBA杂记1
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (转)memcache、redis缓存
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net 调用php,php 调用.net com组件 --
  • .net程序集学习心得
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @Data注解的作用
  • @ModelAttribute使用详解
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [04]Web前端进阶—JS伪数组
  • [Android Pro] AndroidX重构和映射
  • [Android]如何调试Native memory crash issue
  • [Android学习笔记]ScrollView的使用
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]
  • [C++] sqlite3_get_table 的使用
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [Java][算法 双指针]Day 02---LeetCode 热题 100---04~07