设为首页 收藏本站
查看: 936|回复: 0

[经验分享] Windows Mobile访问SQL Server CE 3.5(2)

[复制链接]

尚未签到

发表于 2015-7-1 09:55:56 | 显示全部楼层 |阅读模式
  这篇文章主要介绍在设备中访问本地数据库的一种方法,通过使用SqlCeResultSet方式来更快、更有效的访问数据库。
  
  通过使用数据源来操作数据库访问,一般使用DataSet和SqlCeResultSet
  到底选择哪一个更好呢?
  
  DataSet和SqlCeResultSet都能作为数据源用在数据绑定,或者就直接作为操作数据库的一种方法,到底它们有哪些差异呢?DataSet对象的功能非常丰富,而且可以将数据存储在不同的DataTable中,其中每一个都由Column组成,而每行数据则由DataRow来描述。DataSet还能用于对应表的数据约束(是否为空等),还可以描述表之间的关系(主外键对应),类似于一个关系型的数据库。能够保存所有从数据库来的数据,并且可以将改变的值保存起来,并由行状态来区别,可以临时保存数据。
  
  相对而言,SqlCeResultSet有很大不同,它不存储数据,可以直接读取数据、也可以直接更新数据,所以说是一个轻量型的数据访问对象。
  
  DataSet应用可以用作分布式程序、离线访问程序,用来数据传递。
  在内存有限的设备中,访问本地的数据库,使用DataSet就很大的浪费资源了,此时SqlCeResultSet就有了很好的用武之地了。可以将SqlCeResultSet看成为一个功能的组合:DataSet 的可更新性和可滚动性以及与 SqlCeDataReader 类似的性能。
  
  程序演示:
DSC0000.jpg
  通过Get Data来读取数据,然后可以New、Update、Delete数据。
  效果如下:
DSC0001.jpg
  新增了1条SysNo为12的记录。
DSC0002.jpg
  选择了SysNo为6的一行,按Update,然后该行的Qty和Price已发生变化。
DSC0003.jpg
  选择SysNo为9的记录,按Delete,这该行被删除。
  
  演示效果很简单,代码也很简单。
  选择一个本地数据库,然后在工程中添加一个DataSet,选择好访问的表。在工程界面,选择好DataSet的XSD文件,然后在属性界面,修改Custom Tool(自定义工具)改为MSResultSetGenerator,这样DataSet就会改为SqlCeResultSet了,非常方便。而且生成的SqlCeResultSet为强类型的。
  
  在Form_Load事件中先将对象实例化,传入连接字符串和操作方式。

1 private void Form1_Load(object sender, EventArgs e)
2 {
3     orderSet = new DeviceSQLDemo2.DBResultSets.OrdersResultSet(connString, ResultSetOptions.Scrollable | ResultSetOptions.Sensitive | ResultSetOptions.Updatable);
4 }  
  在绑定数据源时,只需要用SqlCeResultSet绑定一个数据源,在绑定到控件即可。

1 BindingSource bs = new BindingSource();
2 orderSet.Bind(bs);
3 this.dataGrid1.DataSource = bs;  
  新增时,只需要使用Add表名Record即可,修改和删除时,先要使用ReadAbsolute方法,先将游标移到对应行。
  修改操作只需要对SqlCeReusltSet对象的属性修改即可,然后使用update方法,就会立刻更新数据库。
  删除操作则使用Delete方法就可以删除游标所在行了。
  
  本文主要介绍SqlCeResultSet的使用方法,使得大家能够在操作本地数据库时,提供程序的性能。
  
  代码下载:DeviceSQLDemo2.rar
  开发环境:VS2008+WM6.0
  
  Author:AppleSeeker
Date:2008-08-12

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-82164-1-1.html 上篇帖子: 在SQL Server 2005中启用“SQL Server”身份验证 下篇帖子: SQL server 2005 临时表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表