博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Silverlight实用窍门系列:74.Silverlight使用Perst数据库Demo
阅读量:6575 次
发布时间:2019-06-24

本文共 3666 字,大约阅读时间需要 12 分钟。

Perst是一个简单、快速、便捷的面向Java和.Net的数据库。它可以直接将.net对象存储,在Silverlight不需要web service的方式进行读写,而是直接读写。

  本文将编写一个实例进行perst的操作,下载一个PerstSilverlight.dll,然后引用它。

  首先:在App.xaml.cs中Application_Startup()中建立Perst数据库的实例,在Application.Exit()中关闭Perst数据库。

private void Application_Startup(object sender, StartupEventArgs e)        {            //应用程序开启时打开数据库            Storage instanse = StorageFactory.Instance.CreateStorage();            //初始化数据库文件为1M            instanse.SetProperty("perst.file.extension.quantum", 1024 * 1024);            //数据库大小不够时,每次增加512K            instanse.SetProperty("perst.extension.quantum", 512 * 1024);            instanse.Open("SLDemo.dbs");            db = new Database(instanse);            this.RootVisual = new MainPage();        }        private void Application_Exit(object sender, EventArgs e)        {            //应用程序关闭时关闭数据库连接            db.Storage.Close();        }

  其次:建立一个实体类继承于Persistent,定义为索引的字段必须设置为Public。

///     /// 城市类    ///     public class City : Persistent    {        //定义为索引        [FullTextIndexable]        public string _CityName;        ///         /// 城市名称        ///         public string CityName        {            get { return _CityName; }            set { _CityName = value; }        }        [FullTextIndexable]        public string _CityNum;        ///         /// 城市电话区号        ///         public string CityNum        {            get { return _CityNum; }            set { _CityNum = value; }        }        public override void OnLoad()        {            base.OnLoad();        }        //删除        public override void Deallocate()        {            base.Deallocate();        }    }

  再次:实现前台界面的事件,并实现它。

public partial class MainPage : UserControl    {        public MainPage()        {            InitializeComponent();        }        private void GetNum_1(object sender, RoutedEventArgs e)        {            BindCity();        }        ///         /// 绑定所有的城市,并且按照CityNum排序        ///         private void BindCity()        {            List
list = App.db.Select
("order by CityNum").ToList(); this.dgrid.ItemsSource = list; } ///
/// 查找到021号码的区号对象并且删除 /// ///
///
private void DeleteNum_2(object sender, RoutedEventArgs e) { City city = App.db.Select
("CityNum='021'").FirstOrDefault(); city.Deallocate(); App.db.Storage.Commit(); BindCity(); } ///
/// 查找到020区号的对象进行修改 /// ///
///
private void EditNum_4(object sender, RoutedEventArgs e) { City city = App.db.Select
("CityNum='020'").FirstOrDefault(); city.CityName = "上海市"; city.Store(); App.db.UpdateFullTextIndex(city); BindCity(); } ///
/// 添加数据 /// ///
///
private void AddNum_3(object sender, RoutedEventArgs e) { App.db.AddRecord(new City() { CityName = "广州", CityNum = "021" }); App.db.AddRecord(new City() { CityName = "北京", CityNum = "010" }); App.db.AddRecord(new City() { CityName = "上海", CityNum = "020" }); App.db.AddRecord(new City() { CityName = "成都", CityNum = "028" }); App.db.Storage.Commit(); } }

  最后我们来看前台界面Xaml如下:

  下面是效果图片,如需源码请点击  下载。

本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/archive/2012/08/27/2657534.html,如需转载请自行联系原作者

你可能感兴趣的文章
mysql中游标的使用案例详解(学习笔记)(转)
查看>>
第一百四十八节,封装库--JavaScript,菜单切换
查看>>
自定义checkbox/radio
查看>>
LogStash如何通过jdbc 从mysql导入elasticsearch
查看>>
Java数据结构之LinkedList、ArrayList的效率分析
查看>>
VS Code搭建.NetCore开发环境(二)
查看>>
[转]Linux系统下yum和apt-get的区别
查看>>
第三方免费加固横向对比(转载)
查看>>
JVM内的守护线程Deamon与用户线程User Thread
查看>>
最长递减子序列(nlogn)(个人模版)
查看>>
VB,Visual Basic如何修改代码文本大小和字体
查看>>
使用wireshark抓包工具 检测不到本地网卡
查看>>
K-Means算法
查看>>
静态代理和动态代理的区别和联系
查看>>
R-table和tapply函数
查看>>
Apache ZooKeeper
查看>>
MyBATIS插件原理第一篇——技术基础(反射和JDK动态代理)(转)
查看>>
BZOJ 4025: 二分图 [线段树CDQ分治 并查集]
查看>>
pyspark采用python3开发
查看>>
【玩转微信公众平台之十】 图文消息回复解说
查看>>