Silverlight实用窍门系列:74.Silverlight使用Perst数据库Demo
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();//初始化数据库文件为1Minstanse.SetProperty("perst.file.extension.quantum", 1024 * 1024);//数据库大小不够时,每次增加512Kinstanse.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。
/// <summary>/// 城市类/// </summary>public class City : Persistent{//定义为索引 [FullTextIndexable]public string _CityName;/// <summary>/// 城市名称/// </summary>public string CityName{get { return _CityName; }set { _CityName = value; }}[FullTextIndexable]public string _CityNum;/// <summary>/// 城市电话区号/// </summary>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();}/// <summary>/// 绑定所有的城市,并且按照CityNum排序/// </summary>private void BindCity(){List<City> list = App.db.Select<City>("order by CityNum").ToList();this.dgrid.ItemsSource = list;}/// <summary>/// 查找到021号码的区号对象并且删除/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DeleteNum_2(object sender, RoutedEventArgs e){City city = App.db.Select<City>("CityNum='021'").FirstOrDefault();city.Deallocate();App.db.Storage.Commit();BindCity();}/// <summary>/// 查找到020区号的对象进行修改/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void EditNum_4(object sender, RoutedEventArgs e){City city = App.db.Select<City>("CityNum='020'").FirstOrDefault();city.CityName = "上海市";city.Store();App.db.UpdateFullTextIndex(city);BindCity();}/// <summary>/// 添加数据/// </summary>/// <param name="sender"></param>/// <param name="e"></param>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如下:
<Grid x:Name="LayoutRoot" Background="White"><sdk:DataGrid Name="dgrid" HorizontalAlignment="Left" Height="181" Margin="10,80,0,0" VerticalAlignment="Top" Width="338"/><Button Content="增加数据" HorizontalAlignment="Left" Margin="42,10,0,0"VerticalAlignment="Top" Width="75" Click="AddNum_3"/><Button Content="获取值" HorizontalAlignment="Left" Margin="160,10,0,0"VerticalAlignment="Top" Width="75" Click="GetNum_1"/><Button Content="修改值" HorizontalAlignment="Left" Margin="42,48,0,0"VerticalAlignment="Top" Width="75" Click="EditNum_4"/><Button Content="删除值" HorizontalAlignment="Left" Margin="160,48,0,0"VerticalAlignment="Top" Width="75" Click="DeleteNum_2"/></Grid>
下面是效果图片,如需源码请点击 SLPerstDemo.rar 下载。
本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/archive/2012/08/27/2657534.html,如需转载请自行联系原作者
Silverlight实用窍门系列:74.Silverlight使用Perst数据库Demo相关推荐
- Silverlight实用窍门系列:59.多个中心点联动多线的可拖动控件扩展为拓扑图
在本系列的第17篇文章中"Silverlight实用窍门系列:17.中心点联动多线的可拖动控件(绘制工程图.拓扑图基础) ",制作了基本的中心联动图标.有园友对此图的扩展不是很清晰 ...
- Silverlight实用窍门系列:71.Silverlight的Style
此文章实例基于Silverlight实用窍门系列:68.Silverlight的资源字典ResourceDictionary,如有数据源疑问请参考该文章. 在Silverlight中的Style相当于 ...
- Silverlight实用窍门大集合+Silverlight 5 最全新特性【目录索引】
在最近的几个月内整理出了Silverlight的一些相关的比较实用的功能讲解文章,并且随着Silverlight 5 beta版本的发布整理出的新特性系列文章,在这里做一个总的概括和索引,以方便大家观 ...
- Silverlight实用窍门系列:40.Silverlight中捕捉视频,截图保存到本地
在Silverlight中我们可以捕捉视频设备以制作视频会议系统,或者通过视频设备截图功能上传头像等功能. 下面我们通过一个简单的实例来访问视频设备,并且截取图像下载该截图文件至本地. 一.在Silv ...
- Silverlight实用窍门系列:61.Silverlight中的Trigger触发器,自定义翻页触发器
在Silverlight应用程序和客户进行交互工作的时候可以不用写后台代码而通过Xaml代码来实现,在本文我们将学习了解Trigger触发器. Trigger触发器:引发动作的因素,比如鼠标点击.键盘 ...
- Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】...
Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件. 一.细解冒泡路由事件 冒泡路由事件可以比喻为: ...
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】...
在Silverlight程序(非Out of Browser模式)中是无法直接调用DLL的,但是很多的计算或者其他应用程序的调用中我们需要用到DLL的加载.比如调用DLL来识别身份证读卡器传输过来 ...
- Silverlight实用窍门系列:66.Silverlight的数据模板DataTemplate(二)获取数据模板控件...
在Silverlight中我们使用了数据模板,在很多时候也需要获取到数据模板上的控件,并且进行改变.本文使用的实例数据源和上节相同,如需了解请下载源码查看. 当然在这里我们可以分为获取数据模板原始控件 ...
- Silverlight实用窍门系列:65.Silverlight的数据模板DataTemplate(一)使用数据模板
在Silverlight中,我们的数据列表显示控件有ListBox.DataGrid等.对于显示出来的数据条目样式外观的管理是通过DataTemplate(数据模板)来完成的.本节将从DataTemp ...
最新文章
- 在线编辑器 上传控件
- matlab 算法集锦
- gogs可以自动化部署吗_Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc...
- 面向过程、面向函数、面向对象的区别浅谈
- ftp文档服务器设置,ftp服务器基本设置
- 思科修复运营商级路由器中的两个已遭利用漏洞
- Excel如何快速提取红色字体文本
- 红外测距模块 51单片机_基于51单片机的红外发射和接收程序。
- 深蓝儿童破解2012世界末日预言(转)
- 清华大学python教材怎么样_经典!清华大学计算机系教材曝光:《Python编程金典》...
- 一键DDOS防火墙安装程序
- Minecraft 1.18.1、1.18.2模组开发 19.拼图结构建筑(JigSaw Structure)
- thinkphp5+php微信公众号二维码扫码关注推广二维码事件实现
- cad转图片,cad图纸该如何转换成svg格式图片呢?
- 【不全】网络工程师术语表
- Properties综合应用,冲冲冲
- 程序员的中年危机好可怕
- 关于正负样本不平衡问题的解决方法收集整理
- JS中的close()方法
- 索泰新款 ZBox 怎么样
热门文章
- CentOS 7.3:LAMP 动静分离部署
- 批量ssh免密登陆远程主机
- zabbix常见报错
- mysql迁移数据目录,这个坑你遇到过吗?
- 【Python-2.7】大小写转换函数
- 解决CentOS无法解析域名的问题
- 解决ajax回调函数无返回值得问题
- JS之经典for循环闭包问题解决方法
- Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO) 的解决方法
- 是否有“他们的”版本的“git merge -s ours”?