首页 > 代码库 > C# datatable 与 xml文件之间的转换

C# datatable 与 xml文件之间的转换

/// <summary>/// datatable转XML文件/// </summary>/// <param name="dtTable"></param>/// <param name="strXMLPath"></param>/// <returns></returns>public bool DataTableToXML(DataTable dtTable, string strXMLPath){MemoryStream stream = null;XmlTextWriter writer = null;DataSet ds=new DataSet ();ds.Tables.Add(dtTable.Copy());StreamWriter sw = null;try{stream = new MemoryStream();writer = new XmlTextWriter(stream, Encoding.UTF8);ds.WriteXml(writer, XmlWriteMode.WriteSchema);int nCount = (int)stream.Length;byte[] arr = new byte[nCount];stream.Seek(0, SeekOrigin.Begin);stream.Read(arr, 0, nCount);UTF8Encoding utf = new UTF8Encoding();string strContent = utf.GetString(arr).Trim();sw = new StreamWriter(strXMLPath);sw.Write(strContent);return true;}catch (System.Exception vErr){MessageBox.Show(vErr.Message);return false;}finally{if (writer != null){writer.Close();}if (sw != null){sw.Close();}}}/// <summary>/// 读取XML转datatable/// </summary>/// <param name="strXMLPath"></param>/// <returns></returns>public DataTable XMLToDataTable(string strXMLPath){StringReader stream = null;XmlTextReader reader = null;StreamReader sr = null;try{if (strXMLPath.Length <= 0){return new DataTable();}sr = new StreamReader(strXMLPath);string strXmlContent = sr.ReadToEnd();stream = new StringReader(strXmlContent);reader = new XmlTextReader(stream);DataSet ds = new DataSet();ds.ReadXml(reader);return ds.Tables[0];}catch (System.Exception vErr){MessageBox.Show(vErr.Message);}finally{if (sr != null)sr.Close();if (reader != null)reader.Close();}return new DataTable();}

 

C# datatable 与 xml文件之间的转换