DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用
上一节中,我们已经介绍了,使用CriteriaOperator表达式,获取对象数据。
1 2 | CriteriaOperator criteria = CriteriaOperator.Parse( "[UserID]='" + obj.UserID + "'" ); Users objnew = session.FindObject<Users>(criteria); |
如果查询结果是多条数,我们可以使用XPCollection来接收:
1 2 3 4 5 6 7 | XPCollection<Users> coll = new XPCollection<Users>(session); CriteriaOperator criteria = CriteriaOperator.Parse( "" ); SortProperty sortProperty = new SortProperty( "FirstName" , SortingDirection.Ascending); SortingCollection s = new SortingCollection(sortProperty); coll.Session = session; coll.Criteria = criteria; coll.Sorting = s; |
我们修改一下上节的例子,修改后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Threading.Tasks; using DevExpress.Data.Filtering; using DevExpress.Xpo; using DevExpress.Xpo.DB; using XPOModel.DemoDB; namespace DevConsole { class Program { static void Main( string [] args) { string provider = ConfigurationManager.ConnectionStrings[ "ConnectionString" ].ConnectionString; //获取数据库连接 IDataLayer datalayer = new SimpleDataLayer(XpoDefault.GetConnectionProvider(provider, AutoCreateOption.DatabaseAndSchema)); //建立数据层XPO独有的 DevExpress.Xpo.Session session = new DevExpress.Xpo.Session(datalayer); //将数据层和会话绑定 for ( int i = 0; i < 10; i++) { Users obj = new Users(session); obj.FirstName = "Dave_" + i.ToString(); obj.LastName = "Annable" ; obj.EmailID = "Admin@gmail.com" ; obj.Save(); } XPCollection<Users> coll = new XPCollection<Users>(session); CriteriaOperator criteria = CriteriaOperator.Parse( "" ); SortProperty sortProperty = new SortProperty( "FirstName" , SortingDirection.Ascending); SortingCollection s = new SortingCollection(sortProperty); coll.Session = session; coll.Criteria = criteria; coll.Sorting = s; for ( int j = 0; j < coll.Count; j++) { Users obj = coll[j]; Console.WriteLine( string .Format( "ID:{0},FirstName:{1},LastName:{2}" , obj.UserID, obj.FirstName, obj.LastName)); } Console.ReadLine(); } } } |
运行程序后,控制台显示如下:
图一 执行查询结果
CriteriaOperator还可以应用于XpoDataSource(后续将提到如何使用)。
前台添加XpoDataSource控件如下:
1 | < dx:XpoDataSource ID="XpoDataSource1" runat="server" ServerMode="True" TypeName="XPOModel.DemoDB.Users"></ dx:XpoDataSource > |
后台代码指标查询过滤条件如下:
1 2 | XpoDataSource1.Session = session; XpoDataSource1.Criteria = "UserID='122008'" ; |
展现效果如下:
图二 XpoDataSource执行过滤查询后结果
下一节,我们将通过一个完整示例,介绍如何使用DevExpress控件,通过非常少的代码实现CRUD操作...
博文作者:挪威森林(Coding of life)
博文出处:http://www.cnblogs.com/allenlf/
主要研究:Web开发框架、ORM框架、WCF框架、医疗行业软件开发(HRP、EMR、CP、OA)
分类:
Dev Express专题
标签:
XPO
, CriteriaOperator
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)