WindowsPhone7中Perst数据库的使用(一)
好多天没有写博客了,最近在做项目 一直没时间,今天有时间就复习一下WP7中的数据库 内容是根据林政老师的教程复习
在项目中使用Perst数据库需要先引用数据库的PerstWP7.dll组件,下面介绍使用Perst数据库的一些基本步骤
1.创建数据库
语法事例:
//创建Perst存储Storage事例 Storage storage = StorageFactory.Instance.CreateStorage(); //打开storage storage.Open("PerstDemoDB.dbs"); //使用上面创建的storage事例创建数据库 Database db = new Database(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 string Name { get { return name; } set { name = value; } } public User(long id, string name) { this.id=id; this.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(); //模糊查询 //查询所有包含了tbSeach.Text.ToLower() 的结果FullTextSearchResult FullTextSearchResult prefixes = DB.SearchPrefix(tbSeach.Text.ToLower(), 1000, 4000, false); ObservableCollection<User> searchUser = new ObservableCollection<User>(); List<FullTextSearchHit> arrayRes = new List<FullTextSearchHit>(); if (prefixes!=null) { arrayRes.AddRange(prefixes.Hits); } foreach (var hit in arrayRes) { //如果联系人类型 FullTextSearchHit.Document查询匹配的文件 if (hit.Document is User) { if (searchContacts.Contains((User)hit.Document)) { searchContacts.Add((User)hit.Document); } } }
7.删除存储类的所有对象
语法事例如下:
DB.DropTable(typeof(User)); DB.Storage.Commit();
8.删除数据库
语法事例如下:
var storage = ((App)Application.Current).DB.Storage;//获取APP上定义的数据库存储 storage.Close();//关闭它 using (var store = IsolatedStorageFile.GetUserStorForApplication())//获取当前应用程序使用的独立存储文件 { if (store.FileExists("PerstDemoDB.dbs"))//找到数据库的存储文件,perst数据库文件是在独立存储中的 { store.DeleteFile("PerstDemoDB.dbs"); } }
posted on 2012-05-30 22:37 MessageDream 阅读(397) 评论(0) 编辑 收藏 举报