当前位置: 代码迷 >> ASP.NET >> dataSet生成xml有关问题?
  详细解决方案

dataSet生成xml有关问题?

热度:1226   发布时间:2013-02-25 00:00:00.0
dataSet生成xml问题?在线等。
XML code
<BaseInfo>  <TransType>U</TransType>   <TransCode>01011001</TransCode>   <HeaderVervsion />   <SubTransCode />   <TransDate>2011-06-16</TransDate>   <TransTime>00:00:00</TransTime>   <TransSeq />   <Operator>001</Operator>   <TotalRowNum />   <RowNumStart />   <ResultCode>0</ResultCode>   <ResultMsg />   <CltSysCode>13</CltSysCode>   <ClinetIp />   <MachineNo />   <OperatorCom>86</OperatorCom>   <SvrSysCode />   <RouteKey1 />   <RouteKey2 />   <RouteKey3 />   <RegCertifId />   <TransEndDATE />   <TransEndTime />   <ValConstrLimit1 />   <ValConstrLimit2 />   <GranterNo />   <GranterPwd />   <BS_NO />   <EXT_KEY1 />   <EXT_KEY2 />   <EXT_KEY3 /> - <Input>- <Base>  <GUID>NCIA30888664887549x</GUID>   <ManageCom>86210000</ManageCom>   <PayMode />   <HighAmntFlag />   <HealthImpartFlag />   <OccpuImpartFlag />   <FinImpartFlag />   </Base>  </Input>  </BaseInfo>

以上是我xml的一个例子,我用的asp.net在后台用dataset分别装了以上是三个表,并且建立了关系,但是在导出xml的只能导出第一个表,大家帮我看看哪里出问题了。
C# code
string sqlBaseInfo = "select * from BaseInfo where BaseInfo_Id = 14";        dt = DBHelper.getDataTable(sqlBaseInfo, null);        dt.TableName = "BaseInfo";        ds.Tables.Add(dt.Copy());        //----------------------------------------------------------        string sqlInput = "select * from Input where BaseInfo_Id = 14";        DataTable dtInput = DBHelper.getDataTable(sqlInput, null);        dtInput.TableName = "Input";        string Input_Id = dtInput.Rows[0]["Input_Id"].ToString();        ds.Tables.Add(dtInput.Copy());                //---------------------------------------------------------        string sqlBase = "select * from Base where Input_Id = " + Input_Id + "";        dt = DBHelper.getDataTable(sqlBase, null);        dt.TableName = "Base";        ds.Tables.Add(dt.Copy());       DataRelation custOrderRelation = ds.Relations.Add("Input-Base", ds.Tables["Input"].Columns["Input_Id"], ds.Tables["Base"].Columns["Input_Id"]);       DataRelation custOrderRelation1 = ds.Relations.Add("BaseInfo-Input", ds.Tables["BaseInfo"].Columns["BaseInfo_Id"], ds.Tables["Input"].Columns["BaseInfo_Id"]);

这里是我后台的源码,
C# code
   public static bool CDataToXmlFile(DataTable dt, string xmlFilePath)    {        if ((dt != null) && (!string.IsNullOrEmpty(xmlFilePath)))        {           // string path = HttpContext.Current.Server.MapPath(xmlFilePath);            string path = xmlFilePath;            MemoryStream ms = null;            XmlTextWriter XmlWt = null;            try            {                ms = new MemoryStream();                //根据ms实例化XmlWt                XmlWt = new XmlTextWriter(ms, Encoding.Unicode);                //获取ds中的数据                dt.WriteXml(XmlWt);                int count = (int)ms.Length;                byte[] temp = new byte[count];                ms.Seek(0, SeekOrigin.Begin);                ms.Read(temp, 0, count);                //返回Unicode编码的文本                UnicodeEncoding ucode = new UnicodeEncoding();                //写文件                StreamWriter sw = new StreamWriter(path);                sw.WriteLine("<?xml version=" + '"' + "1.0" + '"' + " encoding=" + '"' + "utf-8" + '"' + "?>");                sw.WriteLine(ucode.GetString(temp).Trim());                sw.Close();                return true;            }            catch (System.Exception ex)            {                throw ex;            }            finally            {                //释放资源                if (XmlWt != null)                {                    XmlWt.Close();                    ms.Close();                    ms.Dispose();                }            }        }        else        {            return false;        }    }
  相关解决方案