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操作...

posted on   挪威-森林  阅读(4141)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示