本节内容:[带*号内容为新版本功能函数,旧版本可能没有该功能]
本篇继续上一篇内容,本节介绍所有相关查询的使用。
主要内容提要: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。