以往可能从XML文件获取数据集的比较多一些,但是从XML字符串获取DataSet的不是很多,我的想法是:在客户端,用户提交后生成XML字符串,并将这个字符串存到数据库的某个字段,等到我们使用这些XML数据时,只要提取出来,加以分析,显示在不同的Web控件上即可。主要是XmlTextReader的使用。
为方便,下面不涉及数据库(数据库的相关操作省略)。
一:构建一个XML字符串:
创建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>"; 45 46 strXML +="</Leader>"; 47 strXML += "</DeptName>"; 48 strXML += "</Root>"; 49 return strXML; 50 } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/teakingxinyig/archive/2008/11/19/3333040.aspx
其中里面有一个GetQuarterFirstMonth()方法,是用来获取当前季度的第一个月份的函数,实际测试中,可以随时替换,所以这个函数不贴出来了,以免扰乱视线,呵.
二.根据XML字符串返回DataSet数据集
这里XML串直接来自函数GetstrXML(),在实际业务中,我们大都是从数据库中
获取这个XML字符串的。
二.根据XML字符串返回DataSet数据集
这里XML串直接来自函数GetstrXML(),在实际业务中,我们大都是从数据库中
获取这个XML字符串的。
//由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 } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/teakingxinyig/archive/2008/11/19/3333040.aspx
三.从返回的DataSet中选取不同的DataTable绑定到相应的Web控件上。
根据XML字符串的不同,DataSet中将包含多个DataTable,比如我上面的XML字符串,将返回的DataTable有:DeptName,SendData,Leader三个表。
根据XML字符串的不同,DataSet中将包含多个DataTable,比如我上面的XML字符串,将返回的DataTable有:DeptName,SendData,Leader三个表。
如果绑定的话应该Dataset后面加上DataTable
GridView.DataSource=ds.dataTable["SendData"],不然如果不加DataTabled 的话就显示不出来数据
四.我的最终效果图:
三.从返回的DataSet中选取不同的DataTable绑定到相应的Web控件上。
根据XML字符串的不同,DataSet中将包含多个DataTable,比如我上面的XML字符串,将返回的DataTable有:DeptName,SendData,Leader三个表。