微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > WinCE中基于XML的数据同步

WinCE中基于XML的数据同步

时间:10-08 来源:互联网 点击:

inCE操作系统是嵌入式操作系统中的一种,为微软所研制开发,包含inCE、inCE.NET、indows XP Embedded等一系列的Mobile indows家族。正迅速地为人们所接受。

2.2.2.Compact .Net FrameWork

随着.NET开发平台2003版的推出,微软包容了嵌入式系统的开发,使得嵌入式系统的开发更为简便更为容易。

2.3.XML文件传输

由于XML是一个文本类型的文件,因此具备跨平台的能力,可以为UNIX、LINUX等非Windows平台所接受,由于是文本类型的文件,因此传输方式可以多种多样。比如使用存储器进行传输,存储器包括存储卡、磁盘、磁带等等存储载体;也可以通过网络下载复制的功能,比如通过有线或无线局域网,或者GPRS、Moden等等网络载体;还可以通过红外端口的发送接收文件的方式进行传输。

3.实现方法

由于是WinCE,因此可以使用Visual Studio .Net 2003版进行编程,利用Visual Studio .NET 2003版中带的Compact .Net FrameWork,使所编制的程序可以运行在WinCE的嵌入式系统中。

针对微软的.NET计划,相信不久的将来,Compact .Net FrameWork也可以运行到Palm等其它嵌入式系统中。

3.1.PC端XML数据导出

假设我们已经有了数据库连接SQLconn,strSQL是待执行的SQL语句,则我们的PC端服务程序导出可以写成如下方式。

//初始化SqlDataAdapter

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

//初始化SelectCommand ,其中strSQL为待执行的SQL语句,SQLconn为数据连接

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

//使用myDataAdapter初始化SqlCommandBuilder

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

//初始化一个DataSet

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

//执行strSQL中的SQL指令,查询结果填充到DS中

myDataAdapter.Fill (DS);

//从E:ExFromPC.XSD文件中导入XML架构

DS.WriteXmlSchema(E:\ExFromPC.XSD);

//按照XML架构导出XML数据到E:ExFromPC.XML中

DS.WriteXml(E:\ExFromPC.XML);

自此,XML文件已经导出完成,即可使用2.3所阐述的文件传输方式的任意一种传输到WinCE嵌入式系统中去。

3.2.WinCE端数据导入

//初始化DataSet

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

//初始化XML架构文件操作流

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

//初始化XML架构读取设备

XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

//载入XML架构到DS中

DS.ReadXmlSchema(xtrXSD);

//关闭XML架构读取设备

xtrXSD.Close();

//关闭XML架构文件操作流

FsXSD.Close();

//按照装载了的XML架构载入XML数据到DS

DS.ReadXml(\ExFromPC.XML);

在载入完XML数据之后,即可通过种种方法把数据写入到数据库中,或交由其它方式处理,在此不再陈述。

3.3.WinCE端数据导出

//初始化DataSet

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

//初始化SqlCeDataAdapter

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

//初始化SelectCommand ,其中conn是数据连接,p_strSQL待执行的SQL语句

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

//初始化SqlCeCommandBuilder

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

//加载映射的数据表名p_strTableNameTemp为数据表名

myDataAdapter.TableMappings.Add(Table,p_strTableNameTemp);

//把SQL语句执行结果写入到DS中

myDataAdapter.Fill (DS);

//初始化XML架构文件操作流

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

//初始化XML架构读取设备

XmlTextReader xtrXSD = new XmlTextReader(FsXSD);

//载入XML架构

DS.ReadXmlSchema(xtrXSD);

//关闭XML架构读取设备

xtrXSD.Close();

//关闭XML架构文件操作流

FsXSD.Close();

//导出XML数据文件

DS.WriteXml(\ExFromPC.xml);

自此,XML文件已经导出完成,即可使用2.3所阐述的文件传输方式的任意一种传输到PC中去。

3.4.PC端XML数据导入

//初始化架构文件操作流

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

//初始化XML数据文件操作流

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

//初始化DataSet

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top