色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE中基于XML的數(shù)據(jù)同步

          WinCE中基于XML的數(shù)據(jù)同步

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

          當(dāng)前主流的嵌入式系統(tǒng)的操作系統(tǒng)(OS)包括WinCE、Palm等等,其中以Palm的歷史最為長(zhǎng)久,但是以WinCE的普及推廣速度最快,操作最為靈活,應(yīng)用最為廣泛,因此當(dāng)前時(shí)期,大多數(shù)的用戶選擇WinCE作為當(dāng)前嵌入式系統(tǒng)的操作系統(tǒng)。

          2.2.1.WinCE操作系統(tǒng)

          WinCE操作系統(tǒng)是嵌入式操作系統(tǒng)中的一種,為微軟所研制開(kāi)發(fā),包含WinCE、WinCE.NET、Windows XP Embedded等一系列的Mobile Windows家族。正迅速地為人們所接受。

          2.2.2.Compact .Net FrameWork

          隨著.NET開(kāi)發(fā)平臺(tái)2003版的推出,微軟包容了嵌入式系統(tǒng)的開(kāi)發(fā),使得嵌入式系統(tǒng)的開(kāi)發(fā)更為簡(jiǎn)便更為容易。

          2.3.XML文件傳輸

          由于XML是一個(gè)文本類(lèi)型的文件,因此具備跨平臺(tái)的能力,可以為UNIX、LINUX等非Windows平臺(tái)所接受,由于是文本類(lèi)型的文件,因此傳輸方式可以多種多樣。比如使用存儲(chǔ)器進(jìn)行傳輸,存儲(chǔ)器包括存儲(chǔ)卡、磁盤(pán)、磁帶等等存儲(chǔ)載體;也可以通過(guò)網(wǎng)絡(luò)下載復(fù)制的功能,比如通過(guò)有線或無(wú)線局域網(wǎng),或者GPRS、Moden等等網(wǎng)絡(luò)載體;還可以通過(guò)紅外端口的發(fā)送接收文件的方式進(jìn)行傳輸。

          3.實(shí)現(xiàn)方法

          由于是WinCE,因此可以使用Visual Studio .Net 2003版進(jìn)行編程,利用Visual Studio .NET 2003版中帶的Compact .Net FrameWork,使所編制的程序可以運(yùn)行在WinCE的嵌入式系統(tǒng)中。

          針對(duì)微軟的.NET計(jì)劃,相信不久的將來(lái),Compact .Net FrameWork也可以運(yùn)行到Palm等其它嵌入式系統(tǒng)中。

          3.1.PC端XML數(shù)據(jù)導(dǎo)出

          假設(shè)我們已經(jīng)有了數(shù)據(jù)庫(kù)連接SQLconn,strSQL是待執(zhí)行的SQL語(yǔ)句,則我們的PC端服務(wù)程序?qū)С隹梢詫?xiě)成如下方式。

          //初始化SqlDataAdapter

          System.Data.SqlClient.SqlDataAdapter myDataAdapter = new System.Data.SqlClient.SqlDataAdapter();

          //初始化SelectCommand ,其中strSQL為待執(zhí)行的SQL語(yǔ)句,SQLconn為數(shù)據(jù)連接

          myDataAdapter.SelectCommand = new System.Data.SqlClient.SqlCommand(strSQL,SQLconn);

          //使用myDataAdapter初始化SqlCommandBuilder

          System.Data.SqlClient.SqlCommandBuilder myCB = new System.Data.SqlClient.SqlCommandBuilder (myDataAdapter);

          //初始化一個(gè)DataSet

          System.Data.DataSet DS = new System.Data.DataSet();

          //執(zhí)行strSQL中的SQL指令,查詢結(jié)果填充到DS中

          myDataAdapter.Fill (DS);

          //從E:ExFromPC.XSD文件中導(dǎo)入XML架構(gòu)

          DS.WriteXmlSchema(E:ExFromPC.XSD);

          //按照XML架構(gòu)導(dǎo)出XML數(shù)據(jù)到E:ExFromPC.XML中

          DS.WriteXml(E:ExFromPC.XML);

          自此,XML文件已經(jīng)導(dǎo)出完成,即可使用2.3所闡述的文件傳輸方式的任意一種傳輸?shù)絎inCE嵌入式系統(tǒng)中去。

          3.2.WinCE端數(shù)據(jù)導(dǎo)入

          //初始化DataSet

          System.Data.DataSet DS = new System.Data.DataSet();

          //初始化XML架構(gòu)文件操作流

          FileStream FsXSD = new FileStream(ExFromPC.xsd,FileMode.Open);

          //初始化XML架構(gòu)讀取設(shè)備

          XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

          //載入XML架構(gòu)到DS中

          DS.ReadXmlSchema(xtrXSD);

          //關(guān)閉XML架構(gòu)讀取設(shè)備

          xtrXSD.Close();

          //關(guān)閉XML架構(gòu)文件操作流

          FsXSD.Close();

          //按照裝載了的XML架構(gòu)載入XML數(shù)據(jù)到DS

          DS.ReadXml(ExFromPC.XML);

          在載入完XML數(shù)據(jù)之后,即可通過(guò)種種方法把數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)中,或交由其它方式處理,在此不再陳述。

          3.3.WinCE端數(shù)據(jù)導(dǎo)出

          //初始化DataSet

          System.Data.DataSet DS = new System.Data.DataSet();

          //初始化SqlCeDataAdapter

          System.Data.SqlServerCe.SqlCeDataAdapter myDataAdapter = new System.Data.SqlServerCe.SqlCeDataAdapter();

          //初始化SelectCommand ,其中conn是數(shù)據(jù)連接,p_strSQL待執(zhí)行的SQL語(yǔ)句

          myDataAdapter.SelectCommand = new System.Data.SqlServerCe.SqlCeCommand(p_strSQL,conn);

          //初始化SqlCeCommandBuilder

          System.Data.SqlServerCe.SqlCeCommandBuilder myCB = new System.Data.SqlServerCe.SqlCeCommandBuilder(myDataAdapter);

          //加載映射的數(shù)據(jù)表名p_strTableNameTemp為數(shù)據(jù)表名

          myDataAdapter.TableMappings.Add(Table,p_strTableNameTemp);

          //把SQL語(yǔ)句執(zhí)行結(jié)果寫(xiě)入到DS中

          myDataAdapter.Fill (DS);

          //初始化XML架構(gòu)文件操作流

          FileStream FsXSD = new FileStream(ExFromPC.xsd,FileMode.Open);

          //初始化XML架構(gòu)讀取設(shè)備

          XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

          //載入XML架構(gòu)

          DS.ReadXmlSchema(xtrXSD);

          //關(guān)閉XML架構(gòu)讀取設(shè)備

          xtrXSD.Close();

          //關(guān)閉XML架構(gòu)文件操作流

          FsXSD.Close();

          //導(dǎo)出XML數(shù)據(jù)文件

          DS.WriteXml(ExFromPC.xml);

          自此,XML文件已經(jīng)導(dǎo)出完成,即可使用2.3所闡述的文件傳輸方式的任意一種傳輸?shù)絇C中去。

          3.4.PC端XML數(shù)據(jù)導(dǎo)入

          //初始化架構(gòu)文件操作流

          FileStream FsXSD = new FileStream(E:ExFromCE.XSD,FileMode.Open);

          //初始化XML數(shù)據(jù)文件操作流

          FileStream FsXML = new FileStream(E:ExFromCE.XML,FileMode.Open);

          //初始化DataSet

          System.Data.DataSet DS = new System.Data.DataSet();

          //初始化XML架構(gòu)讀取設(shè)備

          XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

          //載入XML架構(gòu)

          DS.ReadXmlSchema(xtrXSD);

          //關(guān)閉XML架構(gòu)讀取設(shè)備

          xtrXSD.Close();

          //關(guān)閉XML架構(gòu)文件流



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉