以往可能从XML文件获取数据集的比较多一些,但是从XML字符串获取DataSet的不是很多,我的想法是:在客户端,用户提交后生成XML字符串,并将这个字符串存到数据库的某个字段,等到我们使用这些XML数据时,只要提取出来,加以分析,显示在不同的Web控件上即可。主要是XmlTextReader的使用。为方便,下面不涉及数据库(数据库的相关操作省略)。一:构建一个XML字符串:
创建XML字符串 1//创建xml字符串 2private string GetStrXML() 3 { 4 string strXML = ""; 5 strXML += "<?xml version=/"1.0/" encoding=/"utf-8/"?>"; 6 strXML += "<Root>"; 7 strXML += "<DeptName value=/"第一车间/">"; 8 for (int i=0;i<3;i++) 9 {10 strXML += "<SendData value=/""+Convert.ToString(Convert.ToInt32(GetQuarterFirstMonth())+i)+"/">";11 strXML += "<MeltWeight>";12 strXML += Convert.ToString(i*10 +1);13 strXML +="</MeltWeight>";14 strXML += "<FcatUnitHao>";15 strXML += Convert.ToString(i*10 +2);16 strXML +="</FcatUnitHao>";17 strXML += "<JieDian>";18 strXML += Convert.ToString(i*10 +3);19 strXML +="</JieDian>";20 strXML += "<JieyueValue>";21 strXML += Convert.ToString(i*10 +4);22 strXML +="</JieyueValue>";23 strXML += "<Grade>";24 strXML += Convert.ToString(i+1)+"级";25 strXML +="</Grade>";26 strXML += "<Tijijanglv>";27 strXML += Convert.ToString((i*10 +5)/5)+"%";28 strXML +="</Tijijanglv>";29 strXML +="</SendData>";30 }31 strXML +="<Leader>";32 strXML +="<Name>";33 strXML +="张三丰";34 strXML +="</Name>";35 strXML +="<idea>";36 strXML +="同意";37 strXML +="</idea>";38 strXML +="<desp>";39 strXML +="本次审批通过! ";40 strXML +="但是本季度节能比上季度相比,指标有所下降,望各位注意!";41 strXML +="</desp>";42 strXML +="<data>";43 strXML +="2006-04-20";44 strXML +="</data>";4546 strXML +="</Leader>";47 strXML += "</DeptName>";48 strXML += "</Root>";49 return strXML;50 }其中里面有一个GetQuarterFirstMonth()方法,是用来获取当前季度的第一个月份的函数,实际测试中,可以随时替换,所以这个函数不贴出来了,以免扰乱视线,呵.二.根据XML字符串返回DataSet数据集 这里XML串直接来自函数GetstrXML(),在实际业务中,我们大都是从数据库中 获取这个XML字符串的。
由XML字符串生成数据集 1//由XML字符串生成DataSet 2private DataSet GetDataSet() 3 { 4 try 5 { 6 string text = GetstrXML(); 7 XmlTextReader reader = new XmlTextReader(new StringReader(text)); 8 reader.WhitespaceHandling = WhitespaceHandling.None;// 9 DataSet ds = new DataSet();10 ds.ReadXml( reader );//加载XML到DS中11 reader.Close();12 ds.Dispose();13 return ds;14 }15 catch(Exception err)16 {17 throw new Exception("GetDataSet方法异常:"+err.Message);18 19 }20 } 三. 从返回的DataSet中选取不同的DataTable绑定到相应的Web控件上。 根据XML字符串的不同,DataSet中将包含多个DataTable,比如我上面的XML字符串,将返回的DataTable有:DeptName,SendData,Leader三个表。 四. 我的最终效果图: 五:需要主要的地方 如果测试时,编译有问题,请增加相应的引用(废话). using System.Xml; using System.IO; 文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有<script language='javascript' src='http://www.shiqiaotou.com/donetk/Footer.js'></script>