日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇

發布時間:2025/4/5 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之所以分解來寫,是因為在寫的過程中會有些穿插的工作,希望能夠盡量寫的更細節一些。

上篇說的是本地存儲的XML和DataSet之間的交互,現在我們來看看windows mobile 是如何與數據庫進行交互的。

輕量級的SQL Server CE

由于windows mobile 5.0中包含了.Net compact framework組建,談到.Net平臺的數據存儲,我們首先想到的是ADO.NET,是的,在windows mobile設備訪問本地的數據庫使用的正是類似ado.net的一組操作類,從webcast上我找到了這樣的結構圖示

  • .net compact framework managed stack
  • visual studio .net
  • ado.net
  • sql server ce data provider
  • .net compact framework runtime
  • ole db for windows ce
  • sql server ce???????????????????????? data provider

從這個結構可以看出,其實這和windows form應用程序的訪問數據庫架構幾乎一模一樣,這樣的話我們就可以很簡單的來使用這些組件訪問數據庫了。

windows mobile 5.0中帶的數據庫是SQL Server CE,這是一個輕量級的數據存儲組件。其數據庫的存在形式是一個單獨的文件(如:northwind.sdf),你可以直接在模擬器中打開,打開方式默認是在sql server ce中打開,界面類似于SQL Server 中的查詢分析器,如下圖:

可以在這里輸入查詢命令

?

這里是查詢結果窗口

?

了解了這些之后,我們看看windows mobile 上的應用程序是如何訪問 SQL Server CE 的

移動應用程序與SQL Server CE之間的交互

同我們熟悉的sqlconnection,sqlcommand,sqldataadapter一樣,我們同樣可以使用這樣一組類來提供應用程序和數據庫之間的交互。

這里我打算做一個任務管理來體驗windows mobile開發,因此建立了一個數據庫如下

如何建立此數據庫?可以在 visual studio 2008中的服務器管理器中連接到windows mobile的SQL Server CE

選擇更改數據源,在更改數據源選項中選擇Microsoft SQL Server Compact 3.5

選擇ActiveSync連接的設備就能連接到windows mobile 5.0模擬器了,這里我們可以選擇創建或打開已有的數據庫,并設置密碼,當然這里可以選擇數據庫存放的路徑位置等。

數據庫建立完成后我們便可以在應用程序中訪問數據庫了,

如上圖所示我建立了一個TaskList項目,并寫了一個簡單的數據操作類完成插入和提取數據的功能。

?

代碼 using?System;?
using?System.Linq;?
using?System.Collections.Generic;?
using?System.Text;?
using?System.Data;?
using?System.Data.SqlServerCe;?
namespace?MyMobileTaskList?
{?
????
class?DB?
????{?
????????
public?static?string?ConString?=?"Data?Source=MyTask.sdf";?

????????
public?static?DataTable?GetDataSet(string?strSql)?
????????{?
????????????SqlCeConnection?con?
=?new?SqlCeConnection(ConString);?
????????????con.Open();?
????????????SqlCeDataAdapter?sda?
=?new?SqlCeDataAdapter(strSql,?con);?
????????????DataSet?ds?
=?new?DataSet();?
????????????sda.Fill(ds);?
????????????con.Close();?
????????????
return?ds.Tables[0];????????????
????????}?

????????
public?static?void?InsertData(string?strSql)?
????????{?
????????????SqlCeConnection?con?
=?new?SqlCeConnection(ConString);?
????????????con.Open();?
????????????SqlCeCommand?cmd?
=?new?SqlCeCommand(strSql,?con);?
????????????cmd.ExecuteNonQuery();?
????????????con.Close();?
????????}?

????}?
}

?

?

在AddTask.cs窗體中我們這樣就可以直接調用了

窗體:

?

代碼 ??? public?partial?class?AddTask?:?Form?
????{?
????????
public?AddTask()?
????????{?
????????????InitializeComponent();?
????????}?

????????
private?void?btnAdd_Click(object?sender,?EventArgs?e)?
????????{?
????????????
string?strInsert?=?"?insert?into?tasklist(date,place,event)?values?('"?+?Convert.ToDateTime(?this.txtTime.Text)?+?"','"?+?this.txtPlace.Text?+?"','"?+?this.txtTask.Text?+?"')?";?
????????????DB.InsertData(strInsert);?

????????????
//localhost.Hello?webs?=?new?MyMobileTaskList.localhost.Hello();?

????????????MessageBox.Show(
"任務添加成功!");?
????????}?
????}

?

?

用來顯示數據的窗體TaskList.cs的代碼

?

代碼 public?partial?class?TaskList?:?Form?
????{?
????????
public?TaskList()?
????????{?
????????????InitializeComponent();?

????????????
this.dataGrid1.DataSource?=?DB.GetDataSet("select?*?from?tasklist");?
????????}?

?????}

?

?

寫到這里其實已經可以順利訪問數據庫了,但是我這里還有個小問題,就是運行后在顯示數據的這個界面點擊時反應特別慢,甚至卡死。

請了解的朋友告知一下。

總結

以上是生活随笔為你收集整理的windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。