1. 数据库连接
1.1 Session
默认情况下,XPO使用MS Access OLEDB 连接引擎,创建的数据库名与你的项目名是一样,它放置于你的项目文件夹内. 如果数据库不存在,XPO会自动创建它. 你可以通过设置Session.DefaultSession.ConnectionString = "";
1.2 自定义的Session
或者你自己建立自己的Session来实现.建立一个Session 不会自动连接数据存储,为了连接特定的数据库,你需要覆盖默认方法,你需要指定连接的方法,Session.ConnectionString 或者 Session.Connection属性 . 例如:
public Session DBSession=
new Session();
DBSession.ConnectionString = sql; // 连接字符串
DBSession.AutoCreateOption = evExpress.Xpo.DB.AutoCreateOption.SchemaOnly;
DBSession.ConnectionString = sql; // 连接字符串
DBSession.AutoCreateOption = evExpress.Xpo.DB.AutoCreateOption.SchemaOnly;
2. 数据展示
XPO 提供了大约有3个描述对象的组件,它们分别是XPOCollection ,XPDataView,XPView
2.1 XPOCollection
在XPO的应用中,XPOCollection 提供一个集合的对象,你可以把该集合对象从数据存储中获取并将其绑定于UI 控件.
//
Retrieves all the Person objects (including descendants) using the default session.
XPCollection collection = new XPCollection( typeof(TitleType));
this.gridView1.DataSource = xpCollection1;
XPCollection collection = new XPCollection( typeof(TitleType));
this.gridView1.DataSource = xpCollection1;
效果如下:
2.2 XPView
它规定只能使用于展示数据. 它可以从对象模型中去获取独立联合的数据计算和聚合数据
private
void InitViewColumns(XPView view) {
view.Properties.AddRange( new ViewProperty[] {
new ViewProperty( " typeName ", SortDirection.None, " [typeName] ", true, true)});
}.
XPView xpView = new XPView(Session.DefaultSession, typeof(TitleType));
InitViewColumns(xpView);
view.Properties.AddRange( new ViewProperty[] {
new ViewProperty( " typeName ", SortDirection.None, " [typeName] ", true, true)});
}.
XPView xpView = new XPView(Session.DefaultSession, typeof(TitleType));
InitViewColumns(xpView);
过滤
xpView.Criteria = CriteriaOperator.Parse(
"
[typeName] =’abc’
",
null);
gridControl1.DataSource = xpView;
gridControl1.DataSource = xpView;
3.3 XPDataView
它故意仅仅去展示使用直接的SQL Queries 和stored procedures方式获得的数据. 与其他数据展示控件不同点式, 它可以不需要指定session .
SelectedData resultSet = session1.ExecuteQuery(
"
SELECT typeName FROM [titleType]
");
//
执行SQL语句
xpDataView1.LoadData(resultSet);
// 存储过程
SelectedData resultSet = session1ExecuteSproc(sprocName, OperandValue);
// sprocName 存储过程名称
// OperandValue 存储过程参数
xpDataView1.LoadData(resultSet);
// 存储过程
SelectedData resultSet = session1ExecuteSproc(sprocName, OperandValue);
// sprocName 存储过程名称
// OperandValue 存储过程参数
XPDataView 过滤
XPDataView允许它的记录进行过滤展示给客户端,运行 XPDataView.Filter 或者XPDataView.FilterString 属性
下面的例子是过滤TypeName为abc的类别名称
xpDataView1.FilterString =
"
typeName =’abc’
";
排序
你可以针对XPDataView的列值去排序,应用XPdataView.Sorting属性去完成. 下面例中针对typeName列进行倒叙排序.
SortingCollection sortCollection =
new SortingCollection();
sortCollection.Add( new SortProperty( " typeName ", SortingDirection.Descending));
xpDataView1.Sorting = sortCollection;
sortCollection.Add( new SortProperty( " typeName ", SortingDirection.Descending));
xpDataView1.Sorting = sortCollection;