Windows Mobile访问SQL Server CE 3.5(2)
這篇文章主要介紹在設備中訪問本地數據庫的一種方法,通過使用SqlCeResultSet方式來更快、更有效的訪問數據庫。
?
通過使用數據源來操作數據庫訪問,一般使用DataSet和SqlCeResultSet
到底選擇哪一個更好呢?
?
DataSet和SqlCeResultSet都能作為數據源用在數據綁定,或者就直接作為操作數據庫的一種方法,到底它們有哪些差異呢?DataSet對象的功能非常豐富,而且可以將數據存儲在不同的DataTable中,其中每一個都由Column組成,而每行數據則由DataRow來描述。DataSet還能用于對應表的數據約束(是否為空等),還可以描述表之間的關系(主外鍵對應),類似于一個關系型的數據庫。能夠保存所有從數據庫來的數據,并且可以將改變的值保存起來,并由行狀態來區別,可以臨時保存數據。
?
相對而言,SqlCeResultSet有很大不同,它不存儲數據,可以直接讀取數據、也可以直接更新數據,所以說是一個輕量型的數據訪問對象。
?
DataSet應用可以用作分布式程序、離線訪問程序,用來數據傳遞。
在內存有限的設備中,訪問本地的數據庫,使用DataSet就很大的浪費資源了,此時SqlCeResultSet就有了很好的用武之地了。可以將SqlCeResultSet看成為一個功能的組合:DataSet 的可更新性和可滾動性以及與 SqlCeDataReader 類似的性能。
?
程序演示:
通過Get Data來讀取數據,然后可以New、Update、Delete數據。
效果如下:
新增了1條SysNo為12的記錄。
選擇了SysNo為6的一行,按Update,然后該行的Qty和Price已發生變化。
選擇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
轉載于:https://www.cnblogs.com/appleseeker/archive/2008/08/12/1265744.html
總結
以上是生活随笔為你收集整理的Windows Mobile访问SQL Server CE 3.5(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 福州华威集团旗下华威客运票务网页界面设计
- 下一篇: 仓库映射图