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查找数据...
博文作者:挪威森林(Coding of life)
博文出处:http://www.cnblogs.com/allenlf/
主要研究:Web开发框架、ORM框架、WCF框架、医疗行业软件开发(HRP、EMR、CP、OA)
DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)的更多相关文章
- DevExpress ASP.NET 使用经验谈(2)-XPO对象的使用(使用默认数据连接)
接下来,我们通过一个控制台应用程序,介绍XPO对象的保存操作. 图一 添加新项目 图二 选择项目类型为控制台应用程序 查看生成的Program.cs代码文件,代码如下: using System; u ...
- DevExpress ASP.NET 使用经验谈(1)-XPO模型的创建
这个系列通过一些简单例子循序渐进,介绍DevExpress ASP.NET控件的使用.先来介绍一下XPO的使用,安装的DevExpress版本为DXperienceUniversal-12.2.4,使 ...
- DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents
上一节,已经介绍了ASPxGridView的自定义列和基本事件 ,本节接着将介绍Dev控件的客户端事件模型. 在上节示例基础上,我们增加一行菜单,使用Dev的ASPxMenu来实现,如下图所示. 图一 ...
- DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用
上一节中,我们已经介绍了,使用CriteriaOperator表达式,获取对象数据. CriteriaOperator criteria = CriteriaOperator.Parse(" ...
- DevExpress ASP.NET 使用经验谈(5)-通过ASPxGridView实现CRUD操作
这节,我们将通过使用DevExpress的ASPxGridView控件,实现对数据的CRUD操作. 首先,我们在解决方案中,添加一个网站: 图一 添加新网站 图二 添加DevExpress.Data. ...
- DevExpress ASP.NET 使用经验谈(8)-ASPxGridView自定义列和基本事件
为演示本节示例,我们在原来Users表增加[性别Gender].[兴趣爱好Hobbies],[CreateTime创建时间],[ModifyTime]修改时间这4个字段, ALTER TABLE [d ...
- DevExpress ASP.NET 使用经验谈(7)-ASPxTreeList控件使用
这一节,将介绍ASPxTreeList控件的使用,首先,我们增加一个标准地址库表AddressGB, 建表语句如下: CREATE TABLE [dbo].[AddressGB]( [Code] [v ...
- DevExpress ASP.NET 使用经验谈(6)-ASPxGridView属性设置与CRUD界面优化
上一节中,我们通过简单的配置,通过ASPxGridView控件的使用,完成了对数据库表的CRUD操作. 这样的界面展现,功能是达到了,但是操作体验上,还是有所欠缺的. 图一 默认生成的列表界面 图二 ...
- DevExpress ASP.NET Core Controls 2019发展蓝图(No.6)
本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...
随机推荐
- jQuery数据缓存data(name, value)详解及实现
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...
- python 字符串探讨
本文内容基于python3 几乎所有有用的程序都会涉及到某些文本处理,不管是解析数据还是产生输出.字符串的学习是重点中的重点,这一节将重点关注文本的操作处理,比如提取字符串,搜索,替换以及解析等.大部 ...
- windows理论基础(一)
windows体系结构 一. 用户模式和内核模式 (user mode &kernel mode) Intel x86 处理器的体系结构定义了四种特权级,或特为四个环.来保护系统代码不会被低 ...
- BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊(动态树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2002 [题目大意] 给出一片森林,操作允许更改一个节点的父亲,查询一个节点的深度. [ ...
- Codeforces 700A As Fast As Possible(二分答案)
[题目链接] http://codeforces.com/problemset/problem/700/A [题目大意] 有一辆限载k人速度为v2的车,n个步行速度均为v1的人要通过一段长度为l的距离 ...
- 飘逸的python - 有的升序有的降序的情况下怎么多条件排序
之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...
- POJ3771+Prim
最小生成树的应用 数据量小. /* Prim */ #include<stdio.h> #include<string.h> #include<stdlib.h> ...
- MSSQL:修改tempdb设置增加DW性能
Temp DB 在DW中变得非常重要,因为要进行大量的运算,如果内存不够数据就会放在Temp DB中 1. 把Temp DB移动到高性能的磁盘上. 2. 增加tempdb 的大小 3. 把Auto S ...
- iOS 从app跳转到Safari、从app打开电话呼叫
1.从app跳转到Safari NSString* strIdentifier = @"http://www.ybyb.com"; BOOL isExsit = [[UIAppli ...
- AsyncSocket 使用
今天使用AsyncSocket模拟及时通信,在这里记录一下,免得以后自己又犯相同的错误 1>创建客户端和服务器socket /** * 设置socket */ - (void)setupSock ...