DevExpress ASP.NET 使用經驗談(4)-CriteriaOperator的使用


上一節中,我們已經介紹了,使用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操作...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM