CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)----002
原文链接:https://blog.csdn.net/cyq1162/article/details/53303390
前言说明:
本篇继续上一篇内容,本节介绍所有相关查询的使用。 主要内容提要:
1:单行数据操作 Fill 操作 GetCount操作。
2:多行数据操作 Select 操作
3:列表绑定控件操作 配合分页控件
4:多表查询及绑定 视图及自定义SQL
CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)
单行数据操作
一:Fill 填充方法,单行查询
方法原形:public bool Fill(object where)
示例1:直传ID
MAction action = new MAction(TableNames.Users);
if (action.Fill(888))//查询ID=888的单行数据
{
action.SetTo(lblUserName);
action.Close();
}
示例2:传where条件
MAction action = new MAction(TableNames.Users);
if (action.Fill("id=888 or UserName='路过秋天'"))//查询ID=888或用户名为"路过秋天"的单行数据
{
action.SetTo(lblUserName);
action.Close();
}
示例3:where条件附带order by
MAction action = new MAction(TableNames.Users);
if (action.Fill("id>888 order by id desc"))//查询ID>888的结果中取ID最大的的单行数据
{
action.SetTo(lblUserName);
action.Close();
}
二:GetCount 取统计总数
方法原形:public int GetCount(string where)
示例1:
MAction action = new MAction(TableNames.Users);
int count=action.GetCount("id>10");
action.Close();
多行数据操作
三:Select 多数据查询
方法原形:
1:public MDataTable Select()
2:public MDataTable Select(int PageIndex, int PageSize, string Where, out int RowCount)
示例1:
MAction action = new MAction(TableNames.Users);
MDataTable tabme = action.Select();//查询所有数据
action.Close();
示例2:
int count;//这个为返回的记录总数
MAction action = new MAction(TableNames.Users);
MDataTable tabme = action.Select(1,10,"id>10 order by username desc",out count);//查询id>10的10条记录[第1页,每页10条数据,结果按usename排序]
action.Close();
附加说明:
Select 选择所有数据,方法内部原理为:
public MDataTable Select()
{
int count;
return Select(0, 0, "", out count);
}
列表绑定操作
四:绑定GridView/DataList/Repeater
示例1:查询所有直接绑定
MAction action = new MAction(TableNames.Users);
MDataTable table = action.Select();
action.Close();
gvUsers.DataSource = table;
gvUsers.DataBind();
示例2:配合 分页控件 实战 Post篇 分页控件绑定 [下载地址:CYQ.Data 轻量数据层之路 bug反馈、优化建议、最新框架下载 ]
public void BindData()
{
int count;
MAction action = new MAction(TableNames.Users);
MDataTable table = action.Select(Pager1.PageIndex,Pager1.PageSize, "id>10", out count);
action.Close();
gvUsers.DataSource = table;
gvUsers.DataBind();
Pager1.Count = count;//设置记录总数
Pager1.BindName = "BindData";//绑定方法名称
}
示例3:配合其它Get方式分页控件绑定
public void BindData()
{
int count;
MAction action = new MAction(TableNames.Users);
MDataTable table = action.Select(Pager1.PageIndex,Pager1.PageSize, "id>10", out count);
action.Close();
gvUsers.DataSource = table;
gvUsers.DataBind();
Pager1.Count = count;
}
说明:
如果你使用的分页控件比上面的使用情况复杂,你可以考虑优化或弃用原有的分页控件了。
多表查询及绑定
五:视图方式
示例1:和表操作一样,唯一区别就是表名换成视图名称
public void BindData()
{
int count;
MAction action = new MAction(ViewNames.V_Users);
MDataTable table = action.Select(Pager1.PageIndex,Pager1.PageSize, "id>10", out count);
action.Close();
gvUsers.DataSource = table;
gvUsers.DataBind();
Pager1.Count = count;
Pager1.BindName = "BindData";
}
六:自定义构造多表SQL语句
示例1:
public void BindData()
{
string customTable = "(select u.*,m.Body from Users u left join Message m on u.ID=m.UserID) v";
int count;
MAction action = new MAction(customTable);
MDataTable table = action.Select(Pager1.PageIndex,Pager1.PageSize, "id>10", out count);
action.Close();
gvUsers.DataSource = table;
gvUsers.DataBind();
Pager1.Count = count;
Pager1.BindName = "BindData";
}
说明:
在具体使用过程中,为了方便管理,直接出现在自定义SQL语句就不这样直接写在界面中了,可以新项建一个项目统一管理自定义的SQL。
结言:
看完本篇示例,对于查询这一块应该明白了。配合起分页控件起来,实现还是很简单的。
其它用法请关注下一篇:名称未定。
CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)----002的更多相关文章
- CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)
2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六) 的附加视 ...
- CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...
- C蛮的全栈之路-node篇(二) 实战一:自动发博客
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...
- iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比
iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比 iphoneiPhoneIPhoneIPHONEIphone数据持久化 对比总结 本篇对IOS中常用的5种数据持久化方法进行简单 ...
- 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )
ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE? ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的 ...
- 【mybatis annotation】数据层框架应用--Mybatis(二) 基于注解实现数据的CRUD
使用MyBatis框架进行持久层开发 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBa ...
- docker进阶之路-基础篇 | 二:portainer安装与基本使用
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html 简介 Portainer 是轻量级,跨平台,开源的管理D ...
- 数据层的多租户浅谈(SAAS多租户数据库设计)
在上一篇“浅析多租户在 Java 平台和某些 PaaS 上的实现”中我们谈到了应用层面的多租户架构,涉及到 PaaS.JVM.OS 等,与之相应的是数据层也有多租户的支持. 数据层的多租户综述 多租户 ...
- [转载]数据层的多租户浅谈(SAAS多租户数据库设计)
原文:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/index.html 在上一篇“浅析多租户在 Java 平台和某些 ...
随机推荐
- 2015 PHP框架调查结果出炉,Laravel最受欢迎!
日前,SitePoint花了一个月时间进行了有关PHP框架使用情况的调查,通过调查结果所示,无论是在团队项目还是个人项目:无论是国家或是年龄层次,Laravel都是使用最多的一款框架. 其中,最流行的 ...
- 转 Apache Kafka:下一代分布式消息系统
简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...
- smarty学习——基本概念
学习一种框架,我们最基本的就是掌握框架的思想,同时了解框架的基本语法. 1.对于定界符的了解 有的smarty模板标签都被加上了定界符. 默认情况下是 { 和},但它们是可被改变的.例如,我们假定你在 ...
- TensorFlow笔记-03-张量,计算图,会话
TensorFlow笔记-03-张量,计算图,会话 搭建你的第一个神经网络,总结搭建八股 基于TensorFlow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数) ...
- commonJS规范基本结构
commonJS规范:使用 module.exports 和 require ,基本结构如下: // foo.js 输出模块 module.exports = function(x) { consol ...
- JUC线程池之 线程池拒绝策略
拒绝策略介绍 线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施. 当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭.第二,任务数量超过线程池的最大限制. 线程池共包 ...
- AngularJs $scope 里面的$apply 方法和$watch方法
Angular $scope 里面的$apply 方法 Scope提供$apply方法传播Model变化 <!DOCTYPE html> <html> <head> ...
- GRUB 启动 WIN PE 镜像(ISO)
我用的这个WIN PE ISO只有 46M. 再大些的就没试过了. PE ISO 命名为 minipe.iso. 放在第一块硬盘的第二个分区. MENU.LST的内容. title WinPemap ...
- 胖子哥的大数据之路(四)- VisualHBase功能需求框架
一.引言 大数据在结构化数据存储方面的应用需求越来越明确,但是大数据环境下辅助开发工具的不完善,给数据库管理人员和开发人员带来的不变难以言表,基于此创建了开源项目VisualHBase,同时创建了Vi ...
- [模板] Miller_Rabin素数判断代码实现存档
就是....存存代码吧. Miller_Rabin的最核心部分在于二次探测定理和费马小定理.后者在同余/逆元的题目里面或多或少都有提及吧.....前者也很简单. 总而言之,Miller_Rabin不算 ...