Windows Phone 7 Perst嵌入式資料庫的學習

來源:互聯網
上載者:User

    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");//刪除這個資料庫的本機存放區檔案
      }
}

Perst嵌入式資料庫的介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.