原文链接: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的更多相关文章

  1. CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)   的附加视 ...

  2. CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)

    继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...

  3. C蛮的全栈之路-node篇(二) 实战一:自动发博客

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 ---------------- 我是分割线 ---- ...

  4. iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比

    iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比   iphoneiPhoneIPhoneIPHONEIphone数据持久化 对比总结 本篇对IOS中常用的5种数据持久化方法进行简单 ...

  5. 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )

    ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE?        ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的 ...

  6. 【mybatis annotation】数据层框架应用--Mybatis(二) 基于注解实现数据的CRUD

    使用MyBatis框架进行持久层开发 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBa ...

  7. docker进阶之路-基础篇 | 二:portainer安装与基本使用

    转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html ​简介 Portainer 是轻量级,跨平台,开源的管理D ...

  8. 数据层的多租户浅谈(SAAS多租户数据库设计)

    在上一篇“浅析多租户在 Java 平台和某些 PaaS 上的实现”中我们谈到了应用层面的多租户架构,涉及到 PaaS.JVM.OS 等,与之相应的是数据层也有多租户的支持. 数据层的多租户综述 多租户 ...

  9. [转载]数据层的多租户浅谈(SAAS多租户数据库设计)

    原文:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/index.html 在上一篇“浅析多租户在 Java 平台和某些 ...

随机推荐

  1. 20155315 2016-2017-2 《Java程序设计》第九周学习总结

    教材学习内容总结 1.JDBC架构 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网 ...

  2. 51Nod:1003 阶乘后面0的数量

    1003 阶乘后面0的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 72 ...

  3. 《DSP using MATLAB》Problem 4.24

    Y(z)部分分式展开, 零状态响应部分分式展开, 零输入状态部分分式展开,

  4. 《DSP using MATLAB》 Problem 3.19

    先求模拟信号经过采样后,对应的数字角频率: 明显看出,第3种采样出现假频了.DTFT是以2π为周期的,所以假频出现在10π-2kπ=0处. 代码: %% ----------------------- ...

  5. oracle 以及 sql server mysql 空值默认值修改

    在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...

  6. NSDate 时间加减

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/pearlhuzhu/article/details/26227393 NSDate有个类别,例如以下 ...

  7. 自适应巡航控制系统——ACC

    ACC(Adaptive Cruise Control)自适应巡航控制系统(以下简称ACC)是一种基于传感器识别技术而诞生的智能巡航控制,相比只能根据驾驶者设置的速度进行恒定速度巡航的传统巡航控制系统 ...

  8. Apache+modjk布置tomcat集群

    一.版本: Apache: 2.2.14: 下载地址:http://archive.apache.org/dist/httpd/binaries/win32/ Mod_jk:tomcat-connec ...

  9. 标 题: Re: 总感觉IT没我大山东啥事?

    发信人: liuzhlai (liuzhlai), 信区: ITExpress 标  题: Re: 总感觉IT没我大山东啥事? 发信站: 水木社区 (Sat Aug 22 15:51:50 2015) ...

  10. 解决首次访问jenkins,输入初始化默认密码之后,一直卡住问题,无法进行jenkins工具安装

    参考网址:http://www.cnblogs.com/520playboy/p/6244257.html 简介   安装系统:centos6.5 安装方式:在官网中下载jenkins.war,放到t ...