【摘要】XML(可扩展标记语言)是一种提供数据描述格式的标记语言。XML 标记用于定义数据本身的结构和数据类型。客户信息、订单、研究结果、帐单、病历、天气信息数据及其他信息都可以转换为 XML。XML将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同数据源的数据成为可能。本文主要研究在ADO.NET中如何实现XML与数据库的数据交换。
论文关键词:XML,元信息,ADO,数据交换
表1 Weather表
City
Weather
北京
多云
上海
晴
广州
多云转晴
同时建立一个weather.xml文档来说明它们之间的转换。
北京
多云
上海
晴
广州
多云转晴
1.使用DataSet读取天气信息的XML文档并显示。
XML Schema中还支持名域。一个Schema除了可以定义XML文档词汇表外,还可以通过名域来定义目标名域,和其它可能会使用到的词汇名域。XML Schema提供了一个丰富而更具弹性的机制来定义XML文档词汇表。它使用XML语言本身来定义关于一个XML文档的元信息(meta-information),这使得XML的协同工作能力大大的增强了。我们来看如何从xml文件中读取数据。
(1)首先定义DataSet对象,并指要读取的XML文档路径,于使用DataSet提供了ReadXml方法读取XML文档,并保存在DataTable对象中.
DataSet mydataset = new DataSet();
mydataset.ReadXml(Server.MapPath('~/App_Data/weather.xml'));
DataTable myTable = mydataset.Tables[0];
(2)接下来使用循环用表格方式打印在网页上。
…
foreach (DataColumn myColumn in myTable.Columns)
{
Response.Write('' + myRow[myColumn] + '');
}
Response.Write('');
}
…
完成后运行,天气信息的XML文档就会以表格的形式打印要网页上。
2.将数据库中的天气信息导出为XML文件。
XML还有一个更抽象的优点,即作为层次型的格式比关系型的更好。它可以用一种很直接的方式来设计数据结构来符合你的需要。 所以有时要把数据库的数据转换为XML文件。
数据访问是一个应用系统的核心。公用语言运行环境(Common Language Runtime)提供了管理数据访问应用程序接口(API)的方法。而这些API将不论它的数据源是什么,都能提取出我们所需要的数据。我们主要用:Connection, Commands, 和 DataSet等三个对象。
(1)首先要导入System.Data 和System.Data. OleDb这两个名字空间。
(2)接下来定义连接字符串。
string connectionstr = 'Provider=Microsoft.Jet.OleDb.4.0; Data Source =' + Server.MapPath('~/App_Data/weather.mdb');
(3)定义连接对象。
OleDbConnection Conn = new OleDbConnection(connectionstr);
(4)打开数据库连接。
Conn.Open();
(5)使用数据适配器读取数据。
OleDbDataAdapter da = new OleDbDataAdapter('select * from weather', Conn);
DataSet mydataset = new DataSet();
da.Fill(mydataset);
(6)导出数据为XML格式。
string xmlString = mydataset.GetXml();
Response.Write(xmlString);
Response.Write('
');
try
{ System.IO.FileStream fs = new
System.IO.FileStream(Server.MapPath('~/App_Data/weather1.xml'), System.IO.FileMode.Create);
mydataset.WriteXml(fs);
fs.Close();
}
catch (Exception ce)
{ Response.Write(ce.Message);
}
Response.Write('导出成功');
Conn.Close();
完成上述步骤后,App_Data文件夹下就会生成一个weather1.xml天气信息的XML文档,以便进行数据交换。
3.将天气信息的XML文档 文件写入数据。
在很多应用中,依靠文件系统是不够充分的。如果更新很多,文件系统会因为同时写入而受到破坏。数据库则通常支持事务处理,可以应付所发生的请求而不至于损坏。对于复杂的查询统计要有反复、及时的更新,此时数据库表现都很优秀。所以有时我们也需要把XML文档写入数据库进行保存和操作。下面是把天气信息的XML写入数据库的方法。
(1)定义连接字符串, 定义连接对象, 打开数据库连接。步骤同上。
(2)定义XmlDocument,并指定要读取的XML文档路径,以及在XML文档中的根节点。
XmlDocument xmld = new XmlDocument();
xmld.Load(Server.MapPath('~/App_Data/weather.xml'));
XmlNodeList xlml = xmld.SelectNodes('NewDataSet/Table');
(3)循环遍历节点,并把取得的值使用SQL语句写入数据库中。
for (int i = 0; i < xlml.Count; i++)
{
city = xlml[i].SelectSingleNode('city').In
1/2 1 2 下一页 尾页 |