http://www.cnblogs.com/appleseeker/archive/2008/01/25/1053269.html
因為個人原因,好久沒寫blog。對於移動開發方面的變化只能用日新月異來形容阿。WM7也很快就要推出了,Sql Server CE 都到3.5了,真是跟不上步伐阿。
這篇文章就從如何開始用WM5.0開發基於Sql Server CE 的應用程式吧。
下面先簡單介紹下Sql Server CE 的基礎吧:
SQL Server 2005 Compact Edition(縮寫為SQL ServerCE)是微軟推出的一個適用於嵌入到行動裝置 App裝置的精簡資料庫產品,Windows Mobile開發人員能夠使用SQL ServerCE開發出將資料管理能力延展到Window Mobile行動裝置上的應用程式。SQL ServerCE不但提供了完整的SQL文法,包括內部聯結、外部聯結和子查詢,還內建了資料同步技術的支援。有一點要注意的是,SQL Server 2005Compact Edition除了可以作為移動資料庫在WindowsMobile裝置上運行外,它也支援在PC上存放資料,為案頭的應用程式提供資料支援。但可惜貌似不支援視圖、預存程序等。
在資料中查到SQL ServerCE資料庫引擎還提供了兩個非常重要的技術,那就是遠端資料存取和合併式複寫。這兩種方法都是用來實現與遠端資料庫進行資料同步的,使得我們可以很容易將遠端資料庫中的資訊載入到裝置端的SQL Server CE資料庫中,此外我們還可以在離線狀態下對SQL ServerCE資料庫進行插入、刪除、更新等修改操作,最後就可以將修改後的資料回傳到遠端資料庫中,確保了裝置端和伺服器端的資料同步。(在後續文章中會做進一步的講述)
基礎的概述了一番,那從Demo入手,體驗一下究竟Sql Server CE吧。
開發環境:VS2008
開發語言:C#
資料庫:Sql Server CE3.5
這裡使用 VS2008作為開發環境,偷懶了一次。以後文章將使用VS2005的開發環境。
開啟VS2008,選擇Smart Device,然後在右上方選擇.net Framework 2.0,建立一個基於.net Framework2.0的應用程式。
選擇平台類型(PPC/Smartphone),這裡我選擇了PPC。注意下面選項中還能選擇使用CF2.0還是CF3.5,這裡選擇2.0。
工程建立完畢後,你建立一個Form程式時,就會出現相應的模擬器裝置。
接著添加一個資料庫,在項目工程介面,添加一個資料庫。
這時候,會探索資料庫檔案的尾碼名怎麼變成.sdf了。然後,再建立一個對應的DataSet,用來快速開發。(本篇文章主要描述某些功能,實際項目中開發不做參考)
建立好表後,將表拖動到DataSet中,VS會自動產生對應的Adapt和強型別的DataSet。
然後在Form中,拖入一個DataGrid,將DataGrid的Dock設為Fill。大家開發WM時,最好設定Dock,因為這樣控制項會隨著裝置的變化而自動調整,WM可以側過來使用的。
有了資料容器後,自然要綁定資料。
首先,對DataGrid進行設定,這裡的DataGrid因為是CF版本,很多屬性和方法都比WinForm上的要少很多。
先添加一個TabStyle,用於設定綁定一個DataTable。這裡要將GenerateMember設為False,並指定好MappingName(表名)。
添加列,在GridColumnStyles中添加,我添加2列dataGridTextColumn,並將GenerateMember設為False,並同樣指定好MappingName(列名)。
在Form_Load事件中,用Adapt填充一個table,然後對DataGrid綁定。
如果,在前面沒有設定好TableStyle和ColumnStyle的MappingName,這裡綁定時,會多出一些列。
這就是不想要的效果。
這就是想要的效果。
DataGrid無法設定某個列的Visible,沒有該屬性。所以只能通過該方法來屏蔽掉一些列。
DataGrid無法直接進行編輯,那我們如何進行編輯呢,我的處理方式如下:
建立一個Form,將選中的某行資訊,作為參數傳入到編輯Form,該Form上編輯完後,再回傳取得資料即可。
簡單的資料庫訪問的應用程式就算做完了。代碼如下:
Code