CYQ.Data 数据层框架CYQ.Data 是一款由路过秋天创作的支持多数据库应用[Txt,Xml,Access,MSSQL,Oracle,SQLite,MySql]的底层数据库操作类库,使用本类库可以轻松快速开发项目(QQ群:6033006)。 |
CYQ.Data 数据框架 实现数据的按需更新的改进--用数据对比进一步说明
框架原理 |
|
|
| #楼主 |
在发布完:框架设计:实现数据的按需更新与插入的改进, 有网友表示不理解,于是这里给出一篇简单的说明对比,表示下改进后好处。 一:场景一:循环5次,同样也是重复提交的问题 using (MAction action = new MAction(TableNames.Blog_User))
{ for (int i = 0; i < 5; i++) { action.Set(Users.ID, 18); action.Set(Users.UserName, "cyq1162"); action.Update(); } Response.Write(action.DebugInfo);//输出调试信息 } 1:旧模式生成的SQL: 说明: 我们很直观的看到它重复的更新了5次。
2:改进后生成的SQL: 说明: 改进后,只是更新一次,其它四次并没有操作数据库。
二:场景二:模块缓存场景,其实和第一场景相似 MDataRow userInfo=null;//模拟行数据缓存
using (MAction action = new MAction(TableNames.Blog_User)) { if (action.Fill(18)) { userInfo = action.Data; } } using (MAction action = new MAction(userInfo))//从缓存加载 { action.Set(Users.UserName, "cyq1162"); action.Update(); Response.Write(action.DebugInfo); } 1:旧模式生成的SQL: 说明: 无论存不存在缓存,更新同样被触发。
2:改进后生成的SQL: 说明: 有缓存数据时,相同的数据更新,则不会再被更新。
三:结论好处 实质性的减少数据库操作,从数据框架底层有效的防止无效的点击事件。 |
发表评论
论坛公告
帖子搜索
最新帖子
最新评论
- 请教博主。我mysql的提示 V5.7.7.4 MySql.xxxx:check the tablename "tbl_site_info" is exist? error:ExeDataReader():Expression #1 of ORDER BY clause is not in SELECT list, references column 'information_schema.s1.ORDINAL_POSITION' which is not in SELECT list; this is incompatible with DISTINCT 配置如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Conn" connectionString="host=192.168.3.101;Port=3306;Database=xxxxx;uid=root;pwd=2017" providerName="MySql.Data.MySqlClient"/> </connectionStrings> </configuration>
- 查询语句有点问题,软件启动时查询语句可以从数据库查询出数据,软件一直运行时无论怎么修改数据库,查询出来的还是老数据,不知道是为什么
- 我语句中用到了union all而且两个查询都有查询条件,action.select总是不成功,不知道有没有什么好的解决办法,谢谢
- 大神,如果我想通过一个对象(从数据映射过来的)要插入的话,我需要遍历字段然后每个set一下吗?有没有更好的方法??
- 真心好用,想问下秋天直接拼写sql怕注入吗
- V4.5后,好多方法都改变了,求来个新的日志帮助
- 請問大神V5源碼要多少錢 我是和交流過的
- 楼主,,从数据库里查出来并绑定datagridview,但是显示的都是数据库里的英文名,怎么改??好纠结啊这个。。。。
- 我想问一下,主从表添加怎样处理
- 10年就过了!!!!