CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五)
继上一篇:CYQ.Data 轻量数据层之路 应用示例篇(四) 之后,有兴趣的读者可以放心使用及应用或练习了!
不过,在稳定版本之后,本人又进行了一次华丽的升级,升级记录如下:
2:MAction:增加在Update/Insert/Fill/ResetTable失败时,自动调用Close()
3:MAction:修改Fill方法:将之前如果填充时有多条记录返回失败,改成返回首条记录
4:MAction:增加SetAutoPrefix方法,可传多个控件前缀
5:MAction:Update方法开放自动获取控件值功能
6:MAction:关闭属性DataSQLHelper的返回
7:MProce:新出产类,用于存储过程操作
8:OutPutData:新增加对存储过程枚举的导出
9:OutPutData:增加ExeCreateProc方法用于直接执行生成分页存储过程
以下针对更新进说明:
1:增加ResetTable功能:减少New MAction的个数
同一个函数中,如果要用到多个表切换查询,你可能每次都要New一个MAction,于是为了减少New的个数,多了此函数,下面看一下用法:
if(action.Fill("UserName='Cyq'"))
{
action.SetTo(labUserName);
int id=action.Get<int>(Users.ID);
if (action.ResetTable(TableNames.Message))
{
if (action.Fill("UserID=" + id))
{
action.SetTo(labBody);
}
}
action.Close();
}
根据用户名获取完数据之后,取到用户ID,然后切换到消息留言表,根据用户ID填充取第一条数据。
2:增加在Update/Insert/Fill/ResetTable失败时,自动调用Close():改进后可省点代码
我们看一下上节示例代码登陆:
{
MAction action = new MAction(TableNames.Users);
if(action.Fill(string.Format("UserName='{0}' and Password='{1}'", txtUserName.Text.Trim(), txtPassword.Text.Trim())))
{
Session["ID"] = action.Get<int>(Users.ID);
action.Close();
Response.Redirect("Default.aspx");
}
else
{
lbMsg.Text = "用户密码错误!";
action.Close();
}
}
在没有改进之后,你会发现,代码里会出现两次的action.Close();
当然,如果中间没有出现Response.Redirect这么突然的转向,你可以把Action.Close()放到最后面去,这样也只有一条。
然而经过小小的改良后,就算有Response.Redirect,你也可以省略下面一个action.Close()了。
----就省略一行,看起来似乎不太咋的,可如果在多重if分支中使用,其效果就会变的相当的明显的,如:
if (action.Fill(1))
{
//省略N行代码
if (action.Insert())
{
//省略N行代码
if (action.Update())
{
action.Close();
}
}
}
这种情况下,你不用关注在失败时要关闭数据库链接,你只需要关注成功时,关闭就行了,
当然中间来个break/return/continue;就得注意点了。
3:MAction:修改Fill方法:有多条记录时返回失败,改成返回首条记录
在本版本之前,在Fill完之后,如果有多条记录,会返回false,本次修改返回首条记录:
因此,你甚至可以这样填充获取最后一条记录:
if (action.Fill("UserID=2 order by id desc"))
{
action.SetTo(txtBody);
action.Close();
}
由于Fill后组合的是where语句,你可以增加order by 来排序获取尾条记录。
4:MAction:增加SetAutoPrefix方法,可传多个控件前缀
对于控件的自动取值,上一版本就已存在了,不过没有介绍相关用法,但上一版本只能对一种控件前缀取值如:
action.AutoPrefix = "txt";
if (action.Insert(true))
{
action.Close();
}
以上操作能自动获取txt+字段名的控件的值;可是,我们一般情况下,控件的前缀是多种多样的,于是经过改良后:
action.SetAutoPrefix("txt","ddl","lab");
if (action.Insert(true))
{
action.Close();
}
系统能自动获取界面上面三种前缀组合的控件值。同时去掉了AutoPrefix属性。
5:MAction:Update方法开放自动取控件值功能。
在此版本之前,Update方法没有开放自动取值功能,改良后开放了Update方法的自动取值功能,如:
action.SetAutoPrefix("txt","ddl","lab");
if (action.Update("id=1",true))
{
action.Close();
}
6:MAction:关闭属性DataSQLHelper的返回
此版本之前,你可以通过action.DataSqlHelper获取到底层的SQLHelper对象。
之前开放是为了开放底层来操作存储过程。由于出产了MProc专业户处理存储过程,所以关闭属性了。
7:MProce:新出产类,存储过程操作专业户
用法简洁如下:
proc.AddParas(Users.ID, 1);
gvProcUsers.DataSource=proc.ExeDataTable();
gvProcUsers.DataBind();
proc.ResetProc(ProcNames.GetMessageList);
proc.AddParas(Message.UserID, 1);
gvProcMessage.DataSource = proc.ExeDataTable();
gvProcMessage.DataBind();
proc.Close();
8:OutPutData:新增加对存储过程枚举的导出
通过此方法,生成存储过程枚举:
Response.Write(write.OutPutAllTableEnum(CYQ.Data.SQL.OutPutData.TableType.P, CYQ.Data.SQL.OutPutData.FiledDescriptionType.Sql2005));
说明:
TableType.U:表枚举
TableType.V:视图枚举
如生成存储过程枚举如下:
{
GetMessageList,
GetUserList,
}
9:OutPutData:增加ExeCreateProc方法用于直接执行生成的分页存储过程。
Response.Write(write.ExeCreateProc(CYQ.Data.SQL.OutPutData.FiledDescriptionType.Sql2005));
生成的存储过程会直接被执行到数据库中,不用再复制到数据库执行了。
OK,本次升级介绍到此结束,欢迎讨论、使用与留言!!!
最后提供华丽升级版本V1.3下载:点击下载[大小:60K 没加密没混淆没限制,可放心使用,可直接用Reflector.exe查看源码]
CYQ.Data 轻量数据层之路 华丽升级 V1.3出世(五)相关推荐
- CYQ.Data 轻量数据层之路
CYQ.Data 轻量数据层之路 即时通讯软件 其实本来是不想写使用帮助的,因为在以下的文章中,都有大量的示例存在: CYQ.Data 轻量数据层之路 应用示例一 留言版(四) CYQ.Data 轻量 ...
- CYQ.Data 轻量数据层之路 使用篇三曲 MAction 取值赋值(十四)
上一篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三) 内容概要 本篇继续上一篇内容,本节介绍所有取值与赋值的相关操作. 1:原生:像操作Row一样 2:扩展:对UI操 ...
- CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)
上一篇:CYQ.Data 轻量数据层之路 使用篇四曲 MAction 增删改(十五) 本篇内容概要 本篇继续上一篇内容,本节介绍MProc 类的相关操作. 1:MProc 存储过程操作 2:MProc ...
- CYQ.Data 轻量数据层之路 V2.0 震撼惊世 支持多数据库/内置Aop(二十五)
所有文章索引:CYQ.Data 轻量数据层之路 框架开源系列 索引 前言: 从V1.5发布到现在时隔20天了,终于发布2.0版本了,2.0系列版本由于引入多数据库支持,内部结构改动较大. 但是外面调用 ...
- CYQ.Data 轻量数据层之路 使用篇-辅助工具枚举生成器 视频 C (二十)
说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 优雅V1.4 辅助工具(十) 的附加视频教程. 本次视频介绍了使用工具创建存储过程/生成日志表/生成枚举文件等相关操作,同时以示例实 ...
- CYQ.Data 轻量数据层之路 使用篇-MAction 取值赋值 视频[带音乐] F (二十四)
CYQ.Data 轻量数据层之路 使用篇-MAction 取值赋值 视频[带音乐] F (二十四) 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇三曲 MAction 取值赋值 ...
- CYQ.Data 轻量数据层之路 应用示例一 留言版(四)
继上篇:CYQ.Data 轻量数据层之路 继续狂热升级(三)之后,本篇要进入应用示例介绍使用了: 为了使一篇文章就能介绍完整个示例,我选用了简单的:登陆+注册+留言版本功能,来一步一步介绍如何使用的: ...
- CYQ.Data 轻量数据层之路 使用篇-MAction 数据查询 视频 D (二十一)
2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三) 的附加视频教 ...
- CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)
前言: 继正式发布V2.0到现在,已30来天了,一直静悄悄的都没发布什么版本 中间仅有插播了一下:CYQ.Data 轻量数据层之路 V2.5 抢先体验版本功能说明演示 (二十九) 只因最近花了很多时间 ...
最新文章
- GoF23种设计模式之行为型模式之解释器模式
- 样本方差除以n-1而不是n的原因
- Qt5.7 + VS2015 环境搭建
- 记一次Socket.IO长链服务的性能压测
- QT绘制饼图和自定义饼图切片
- 找出两列表的共有元素python_python 找出两个dataframe中不同的元素
- 7-2 单源最短路径 (10 分)(思路+详解+邻接表做法)Come Brather!!!!!!!!!!
- Linux—shell脚本化工具模板
- 3说明书_怎么才能做好产品说明书翻译?知行翻译公司总结了3点
- 西门子修复因使用第三方组件引起的90多个漏洞
- 关于Servlet报错:405 HTTP method GET is not supported by this URL问题解决方法
- 日历插件bootstrap-datetimepicker的使用感悟
- Android Camera架构浅析
- 网上打印个人完税证明流程
- 基于微信小程序开发的在线答题系统
- 数值分析:高斯消元法
- 2017年7月最新全国行政规划数据库
- 导入Spring源码找不到包spring-cglib-repack和spring-objenesis-repack
- 【C语言】三子棋(智能下棋 + 阻拦玩家)
- 八百呼的手机录音系统,一个划时代的进步