当前位置: 首页 > 工具软件 > CYQ.Data > 使用案例 >

cyq.data oracle序列,CYQ.Data 数据框架 使用篇二 MAction 数据查询

洪俊拔
2023-12-01

本节内容:[带*号内容为新版本功能函数,旧版本可能没有该功能]

本篇继续上一篇内容,本节介绍所有相关查询的使用。

主要内容提要:1:单行数据操作 Fill 操作 GetCount、Exists(*)操作。

2:多行数据操作 Select 操作

3:列表绑定控件操作 配合分页控件

4:多表查询及绑定 视图及自定义SQL

单行数据操作

一:Fill 填充方法,单行查询

方法原形:publicboolFill(objectwhere)

示例1:直传ID

using(MAction action=newMAction(TableNames.Users))

{if(action.Fill(888))//查询主键=888的单行数据{

action.UI.SetToAll(this);

}

}

示例2:传复杂的where条件

using(MAction action=newMAction(TableNames.Users))

{if(action.Fill("id>888 or UserName='路过秋天'"))//查询ID>888或用户名为"路过秋天"的单行数据{action.UI.SetToAll(this);}

}

示例3:where条件附带order by

using(MAction action=newMAction(TableNames.Users))

{if(action.Fill("id>888 order by id desc"))//查询ID>888的结果中取ID最大的的单行数据{action.UI.SetToAll(this);}

}

示例4:[MDataRow]行数据转实体

using(MAction action=newMAction(TableNames.Users))

{if(action.Fill(888))//查询ID>888的结果中取ID最大的的单行数据{

UserInfo info=action.Data.ToEntity();//UserInfo为实体类。}}

二:GetCount 取统计总数

方法原形:publicintGetCount(stringwhere)

示例(若取总数据,参数可传空或Null):

using(MAction action=newMAction(TableNames.Users))

{intcount=action.GetCount("id>10");

}

三:Exists 是否存在指定条件的数据(*)方法原形:publicintExists(stringwhere)

示例:

using(MAction action=newMAction(TableNames.Users))

{bool userExists=action.Exists("路过秋天"); // 取唯一键(或除了主键开始的第一个字符串字段;智能推导为:UserName='路过秋天'

}

多行数据操作

三:Select 多数据查询

方法原形:1:publicMDataTable Select()

2:publicMDataTable Select(stringwhere)(*)3:publicMDataTable Select(intPageIndex,intPageSize,stringWhere,outintRowCount)

示例1:

using(MAction action=newMAction(TableNames.Users))

{

MDataTable tabme=action.Select();//查询所有数据}

示例2:

using(MAction action=newMAction(TableNames.Users))

{

MDataTable tabme=action.Select("id>10 order by id desc");//查询指定条件的所有数据并降序排列}

示例3:

intcount;//这个为返回的记录总数

using(MAction action=newMAction(TableNames.Users))

{

MDataTable tabme= action.Select(1,10,"id>10 order by id desc",outcount);

//查询id>10的10条记录[第1页,每页10条数据,结果按usename排序]}

列表绑定操作

四:绑定GridView/DataList/Repeater

示例1:查询所有直接绑定

using(MAction action=newMAction(TableNames.Users))

{action.Select().Bind(gvUsers);

}

publicvoidBindData()

{intcount;

using(MAction action=newMAction(TableNames.Users))

{action.Select(Pager1.PageIndex,Pager1.PageSize,"id>10 order by id desc",outcount).Bind(gvUsers);

}

Pager1.Count =count;//设置记录总数Pager1.BindName="BindData";//绑定方法名称,需要为Public

}

多表查询及绑定

五:视图方式

示例1:和表操作一样,唯一区别就是表名换成视图名称

using(MAction action=newMAction(ViewNames.V_Users))

{

MDataTable tabme=action.Select();//查询所有数据}

六:多表查询:自定义构造多表SQL语句

示例1:

publicvoidBindData()

{

stringcustomTable="select u.*,m.Body from Users u left join Message m on u.ID=m.UserID";intcount;

using(MAction action=newMAction(customTable))

{action.Select(Pager1.PageIndex,Pager1.PageSize,"id>10 order by id desc",outcount).Bind(gvUsers);

}

Pager1.Count =count;//设置记录总数Pager1.BindName="BindData";//绑定方法名称,需要为Public

}

说明:

在具体使用过程中,为了方便管理,直接出现在自定义SQL语句就不这样直接写在界面中了,可以新项建一个项目统一管理自定义的SQL。

 类似资料: