Windows Phone 7 Perst嵌入式数据库的学习

简介:

WP7只有本地存储,自身是不带数据库存储的,所以想要在WP7上使用数据库只能通过使用第三方的嵌入式数据库。Perst 是一个简单,快速,便捷,面向对象适合Java与.NET的数据库,它在嵌入式数据库领域是鼎鼎有名的,并且其代码是开源的,我们可以在它的官方网站上下载该数据库的所有的代码。
官方网站www.mcobject.com/perst_eval


下面是Perst数据库在Windows Phone 7上使用的一些基本的语法的简单总结:

1、创建数据库

Storage storage = StorageFactory.Instance.CreateStorage(); //创建Perst存储Storage实例
storage.Open( "PerstDemoDB.dbs"); // 打开Storage
Database DB = new Database(storage); //使用上面初始化的Storage实例创建数据库


2、创建数据库面向对象的类(作用相当于关系数据库的表)
//创建一个数据库存储的面向对象的类的基类 要继承Perst.Persistent基类
public class User: Perst.Persistent
{
//定义字段
//Perst使用反射来获取对象的值 需要在字段的前面加上[FullTextIndexable]标示
[FullTextIndexable]
public long id; 
[FullTextIndexable]
public string name; 
……

public long Id
{
get { return id; }
set { id= value; }
}
……

public User(long Id, string name)
{
id = id;
name = name;
}

public override void OnLoad()
{
base.OnLoad();
}

//获取数据库对象 一般会将数据库定义在App里面
protected static Database DB
{
get { return ((App)Application.Current).DB; }
}

public override void Deallocate()
{
DB.DeleteRecord(this);//删除记录
}

public void Save()
{
Store();//保存 相当于保存表
DB.UpdateFullTextIndex(this);
}
}

3、添加记录
User user= new User(1, "名字");
DB.AddRecord(user);
DB.Storage.Commit();

4、修改记录
user.Id=2
user.Save();

5、删除记录
user.Deallocate();
DB.Storage.Commit();

6、查询数据库
根据唯一的oid查询记录 oid是Perst数据库为每一个类的对象分配的一个唯一的值
User user= DB.Select<User>("oid = " + this.NavigationContext.QueryString["oid"]).FirstOrDefault();

模糊查询
// 查询所有包含了tbSearch.Text.ToLower()的结果FullTextSearchResult
FullTextSearchResult prefixes = DB.SearchPrefix(tbSearch.Text.ToLower(), 1000, 4000, false);
ObservableCollection<User> searchUsers = new ObservableCollection<User>();
List<FullTextSearchHit> arrayRes = new List<FullTextSearchHit>();
if (prefixes != null) arrayRes.AddRange(prefixes.Hits);
foreach (var hit in arrayRes)
{
if (hit.Document is User)//如果是联系人类型 FullTextSearchHit.Document 查询匹配的文件
{
if (!searchcontacts.Contains((User)hit.Document))
searchcontacts.Add((User)hit.Document);
}
}

7、删除存储的类的所有对象
DB.DropTable(typeof(User));
DB.Storage.Commit();//完成

8、删除数据库

var storage = ((App)App.Current).DB.Storage;//获取在App上定义的数据库存储
storage.Close();//关闭它
using (var store = IsolatedStorageFile.GetUserStoreForApplication())//获取当前应用程序使用的本地存储文件
{
if (store.FileExists("PerstDemoDB.dbs"))//找到数据库的存储文件 perst数据库文件是在本地存储中的
{
store.DeleteFile("PerstDemoDB.dbs");//删除这个数据库的本地存储文件
}
}


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078624


相关文章
|
关系型数据库 数据库 C++
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)
|
存储 SQL 安全
使用嵌入式数据库
【5月更文挑战第12天】SQLite是一个轻量级、稳定的进程内数据库它支持WAL日志模式以提高读写性能,允许设置繁忙超时和启用外键约束。内置5种数据类型,如INTEGER、REAL、TEXT、BLOB和NULL。适 SQLite适合嵌入式应用和读取密集型任务,但不适用于高度并发的写操作或需要多进程协作的场景。
556 2
使用嵌入式数据库
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
1151 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
SQL 关系型数据库 MySQL
Windows服务器的最佳数据库是什么?
【7月更文挑战第20天】Windows服务器的最佳数据库是什么?
499 5
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
901 0
|
Java 测试技术 数据库连接
Spring Boot中的嵌入式数据库使用
Spring Boot中的嵌入式数据库使用
|
安全 测试技术 数据库
达梦数据库Windows安装教程:从准备到完成
达梦数据库Windows安装教程:从准备到完成
3391 6