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

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

首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定,

所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使用,即程序目录下的DevConsole.vshost.mdb数据库文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using XPOModel.DemoDB;

namespace DevConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Users obj = new Users(new DevExpress.Xpo.Session());
            obj.FirstName = "Dave";
            obj.LastName = "Annable";
            obj.EmailID = "Admin@gmail.com";
            obj.Save();
            Console.Write("已经通过XPO对象完成对象保存!");
            Console.ReadLine();
        }
    }
}

 修改配置文件,增加ConnectionStrings配置节:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
  </startup>
  <connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=DemoDB;user id=demo;password=demo;Integrated Security=false" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

 修改代码如下,将数据层与会话绑定。

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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); //将数据层和会话绑定
            Users obj = new Users(session);
            obj.FirstName = "Dave";
            obj.LastName = "Annable";
            obj.EmailID = "Admin@gmail.com";
            obj.Save();
            Console.WriteLine("已经通过XPO对象完成对象保存,保存对象ID:" + obj.UserID);
            Console.WriteLine(string.Format("ID:{0},FirstName:{1},LastName:{2}", obj.UserID, obj.FirstName, obj.LastName));
            Console.ReadLine();
        }
    }
}

 点击运行该控制台程序,查看Sql Server DemoDB数据库,Users表已经存在刚才添加的数据。

                                                图一 执行XPO对象的保存

                                                       图二 查看Sql Server数据库保存结果

对于XPO对象的保存,我们使用了Save,如果需要通过XPO对象执行删除,我们可以采用Delete方法,代码如下:

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); //将数据层和会话绑定
            Users obj = new Users(session);
            obj.FirstName = "Dave";
            obj.LastName = "Annable";
            obj.EmailID = "Admin@gmail.com";
            obj.Save();
            Console.WriteLine("1.已经通过XPO对象完成对象保存,保存结果:");
            Console.WriteLine(string.Format("ID:{0},FirstName:{1},LastName:{2}", obj.UserID, obj.FirstName, obj.LastName));

            obj.Delete();
            Console.WriteLine("3.删除对象ID:" + obj.UserID);

            Console.ReadLine();
        }
    }
}

 那么,有没有Load方法,可以读取一条Users数据呢? 找遍之后,发现居然没有,那我们通过什么方式获取指定一条Users数据呢?

通过

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); //将数据层和会话绑定
            Users obj = new Users(session);
            obj.FirstName = "Dave";
            obj.LastName = "Annable";
            obj.EmailID = "Admin@gmail.com";
            obj.Save();
            Console.WriteLine("1.已经通过XPO对象完成对象保存,保存结果:");
            Console.WriteLine(string.Format("ID:{0},FirstName:{1},LastName:{2}", obj.UserID, obj.FirstName, obj.LastName));
            Console.WriteLine();
            CriteriaOperator criteria = CriteriaOperator.Parse("[UserID]='" + obj.UserID + "'");
            Users objnew = session.FindObject<Users>(criteria);
            Console.WriteLine("2.找到一个Users数据,ID为:" + objnew.UserID);
            Console.WriteLine();
            objnew.Delete();
            Console.WriteLine("3.删除对象ID:" + objnew.UserID);
            Console.ReadLine();
        }
    }
}

 执行结果如下:

                  图三 执行Save、Delete方法,通过CriteriaOperator表达式FindObject获取对象

下一节中,我们将简单介绍如何通过CriteriaOperator查找数据...

 

时间: 2024-08-30 16:42:40

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

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

原文:DevExpress ASP.NET 使用经验谈(2)-XPO对象的使用(使用默认数据连接) 接下来,我们通过一个控制台应用程序,介绍XPO对象的保存操作.                                               图一 添加新项目                                                     图二 选择项目类型为控制台应用程序 查看生成的Program.cs代码文件,代码如下: using System; usi

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

原文:DevExpress ASP.NET 使用经验谈(1)-XPO模型的创建 这个系列通过一些简单例子循序渐进,介绍DevExpress ASP.NET控件的使用.先来介绍一下XPO的使用,安装的DevExpress版本为DXperienceUniversal-12.2.4,使用Visual Studio 2012+Sql Server2005. 什么是XPO? XPO 是 eXpress Persistent Objects的缩写,它是DevExpress公司推出的一个运行在.NETFram

DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用

原文:DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用 上一节中,我们已经介绍了,使用CriteriaOperator表达式,获取对象数据. CriteriaOperator criteria = CriteriaOperator.Parse("[UserID]='" + obj.UserID + "'"); Users objnew = session.FindObject<Users>(criteria)

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

原文:DevExpress ASP.NET 使用经验谈(5)-通过ASPxGridView实现CRUD操作 这节,我们将通过使用DevExpress的ASPxGridView控件,实现对数据的CRUD操作. 首先,我们在解决方案中,添加一个网站:                                                                      图一 添加新网站                               图二 添加DevExpress.Da

asp简介和五大内置对象

对象|内置对象|内置对象 目次 1.ASP基础 2.ASP的五大对象 3.Request对象 4.Response对象 5.Server对象 6.Application对象 7.Session对象 1.ASP基础 Microsoft Active Server Pages,即读者朋友们所称的ASP,是一套微软开发的服务器端脚本环境,ASP内含于IIS之中,最新版的ASP 3.0内含于IIS 5.0之中.通过ASP大家可以结合HTML网页.ASP指令和ActiveX控件建立动态.交互且高效的WEB

ASP.NET 2.0中用Response对象输出图像

本文示例小工程将向你展示如何使用Response对象在ASP.NET 2.0 Web页面中输出直接存储在SQL Server 2005数据库中的图像数据.直接在Web页面上绘制并输出图像数据和事件设计. 一.简介 作为ASP.NET基本对象之一的Response对象不但可以通过Write()方法直接在页面上输出字符串数据,而且还可以使用BinaryWrite()方法直接显示二进制表示的数据,如图像.图片等. 本文示例小工程将向你展示如何使用Response对象在ASP.NET 2.0 Web页面

秒懂ASP.NET中的内置对象

       上篇博客,小编主要简单的介绍了一下ASP.NET中的控件,这篇博客,小编主要简单总结一下ASP.NET中的内置对象,七个内置对象分别是:Request.Response.Application.Cookies.Session.Server.Trace.这些对象使得用户更容易收集通过浏览器请求发送的信息.相应浏览器以及存储用户信息,以实现其他特定的状态管理和页面信息的传递,首先,我们来看下面一张图:                 接下来,小编主要从概述,基本语法,常用属性和方法以及

完美解决ASP 不能更新。数据库或对象为只读。[原创]_ASP基础

最近帮别人处理下数据,发现添加数据时,就提示"ASP 不能更新.数据库或对象为只读.",从网上找了,也没有解决我的问题.1.服务器的数据目录mdb文件所在的目录,是只读的2.数据库在本地的权限,去只读权限,再上传3.有可能你是从只读目录移动到可读目录的,所以一定不能这么用,先下到本地,再上传,可解决此类问题.www.jb51.net "不能更新,数据库或对象为只读"的解决方案 初接触dreamweaver,在做一简单页面实现向access数据库写数据时,总是遇到这样

完美解决ASP 不能更新。数据库或对象为只读。 原创

最近帮别人处理下数据,发现添加数据时,就提示"ASP 不能更新.数据库或对象为只读.",从网上找了,也没有解决我的问题. 1.服务器的数据目录mdb文件所在的目录,是只读的 2.数据库在本地的权限,去只读权限,再上传 3.有可能你是从只读目录移动到可读目录的,所以一定不能这么用,先下到本地,再上传,可解决此类问题.www.jb51.net "不能更新,数据库或对象为只读"的解决方案 初接触dreamweaver,在做一简单页面实现向access数据库写数据时,总是遇