上一节中,我们已经介绍了,使用CriteriaOperator表达式,获取对象数据。

CriteriaOperator criteria = CriteriaOperator.Parse("[UserID]='" + obj.UserID + "'");
Users objnew = session.FindObject<Users>(criteria);

如果查询结果是多条数,我们可以使用XPCollection来接收:

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;

我们修改一下上节的例子,修改后的代码如下:

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控件如下:

<dx:XpoDataSource ID="XpoDataSource1" runat="server" ServerMode="True" TypeName="XPOModel.DemoDB.Users"></dx:XpoDataSource>

后台代码指标查询过滤条件如下:

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)

版权归挪威森林博客园所有,转载请注明出处,谢谢合作

DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用的更多相关文章

  1. DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents

    上一节,已经介绍了ASPxGridView的自定义列和基本事件 ,本节接着将介绍Dev控件的客户端事件模型. 在上节示例基础上,我们增加一行菜单,使用Dev的ASPxMenu来实现,如下图所示. 图一 ...

  2. DevExpress ASP.NET 使用经验谈(1)-XPO模型的创建

    这个系列通过一些简单例子循序渐进,介绍DevExpress ASP.NET控件的使用.先来介绍一下XPO的使用,安装的DevExpress版本为DXperienceUniversal-12.2.4,使 ...

  3. DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)

    首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定, 所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使 ...

  4. DevExpress ASP.NET 使用经验谈(5)-通过ASPxGridView实现CRUD操作

    这节,我们将通过使用DevExpress的ASPxGridView控件,实现对数据的CRUD操作. 首先,我们在解决方案中,添加一个网站: 图一 添加新网站 图二 添加DevExpress.Data. ...

  5. DevExpress ASP.NET 使用经验谈(8)-ASPxGridView自定义列和基本事件

    为演示本节示例,我们在原来Users表增加[性别Gender].[兴趣爱好Hobbies],[CreateTime创建时间],[ModifyTime]修改时间这4个字段, ALTER TABLE [d ...

  6. DevExpress ASP.NET 使用经验谈(7)-ASPxTreeList控件使用

    这一节,将介绍ASPxTreeList控件的使用,首先,我们增加一个标准地址库表AddressGB, 建表语句如下: CREATE TABLE [dbo].[AddressGB]( [Code] [v ...

  7. DevExpress ASP.NET 使用经验谈(2)-XPO对象的使用(使用默认数据连接)

    接下来,我们通过一个控制台应用程序,介绍XPO对象的保存操作. 图一 添加新项目 图二 选择项目类型为控制台应用程序 查看生成的Program.cs代码文件,代码如下: using System; u ...

  8. DevExpress ASP.NET 使用经验谈(6)-ASPxGridView属性设置与CRUD界面优化

    上一节中,我们通过简单的配置,通过ASPxGridView控件的使用,完成了对数据库表的CRUD操作. 这样的界面展现,功能是达到了,但是操作体验上,还是有所欠缺的. 图一 默认生成的列表界面 图二 ...

  9. DevExpress ASP.NET Core Controls 2019发展蓝图(No.4)

    本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...

随机推荐

  1. css2实现尖角箭头式导航

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  2. 一个简单的web框架实现

    一个简单的web框架实现 #!/usr/bin/env python # -- coding: utf-8 -- __author__ = 'EchoRep' from wsgiref.simple_ ...

  3. Paragraph Vector在Gensim和Tensorflow上的编写以及应用

    上一期讨论了Tensorflow以及Gensim的Word2Vec模型的建设以及对比.这一期,我们来看一看Mikolov的另一个模型,即Paragraph Vector模型.目前,Mikolov以及B ...

  4. Java图形化界面设计——布局管理器之GridLayout(网格布局)

    网格布局特点: l  使容器中的各组件呈M行×N列的网格状分布. l  网格每列宽度相同,等于容器的宽度除以网格的列数. l  网格每行高度相同,等于容器的高度除以网格的行数. l  各组件的排列方式 ...

  5. Java图形化界面设计——中间容器(Jpanel)

    1.  将组件添加到JFrame中 方式之一: frame.getContentPane().add(childComponent) 用getContentPane()方法获得JFrame的内容面板, ...

  6. 超级密码(bfs)

    超级密码 Time Limit : 20000/10000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  7. Android乐学成语之自定义Adapter

    一.首先对Adapter概念深刻的了解 首先看看他的继承图

  8. struts2入门

    好久没有动博客了.今天看了一下慕课网的视频,简单了解一下struts2. 首先是在项目中引入struts2的文件,有一个比较简单的方法就是可以直接右键项目MyEclipse->Project f ...

  9. Java 网络编程(六) 使用无连接的数据报(UDP)进行通信

    连接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952673.html 使用无连接的数据报(UDP)进行通信 什么是Datagram? 数 ...

  10. 使用 IObjectSafety 标记 ATL 控件初始化的安全

    MSDN原文.这里我将代码使用到了BHO里面,运行调试没问题.拿来分享一下 概要 您可以使用 IObjectSafetyImpl 的默认实现来标记为可安全执行脚本的控件.在许多情况下,您需要将标记为可 ...