原文链接: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. U-Boot_bmp_logo_hacking

    /*********************************************************************** * U-Boot_bmp_logo_hacking * ...

  2. 【opencv基础】测量运行时间的函数getTickCount/getCPUTickCount/getTickFrequency

    函数的计算结果类型是double,单位是秒. 要使用更精确的计时,就需要使用getCPUTickCount(),不过现代计算机CPU的频率会随着负载而变化所以没大有必要使用该函数,可以参看函数的介绍[ ...

  3. 多重背包!!!(二进制优化的01背包)hdoj-2844

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  4. UTF-8编码占几个字节?

    占2个字节的:带有附加符号的拉丁文.希腊文.西里尔字母.亚美尼亚语.希伯来文.阿拉伯文.叙利亚文及它拿字母则需要二个字节编码 占3个字节的:基本等同于GBK,含21000多个汉字 占4个字节的:中日韩 ...

  5. Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined

    遇到问题: Android NDK: jni/Android.mk: Cannot find module with tag 'XXXXXXXXX' in import path Android ND ...

  6. Arpa’s obvious problem and Mehrdad’s terrible solution 思维

    There are some beautiful girls in Arpa’s land as mentioned before. Once Arpa came up with an obvious ...

  7. CentOS7使用打开关闭防火墙与端口

    systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体. 启动一个服务:systemctl start firewalld.servic ...

  8. Python需要知道的知识点

    1.所有数据类型都自带布尔值,布尔值为假的数据类型 包括( 空字符串,空列表,空字典,空集合).数字(0).None类型 2.Python实现int的时候有个小整数池.为了避免因创建相同的值而重复申请 ...

  9. MySQL--DROP TABLE与MySQL版本

    ======================================================================== DROP TABLE与MySQL版本 MySQL在5. ...

  10. oracle 、sql server 、mysql 复制表数据

    我们知道在oracle 中复制表数据的方式是使用 create table table_name as select * from table_name 而在sql server  中是不能这么使用的 ...