XML与DataSet相互转换,DataSet查询

以FileShare.Read形式读XML文件:

string hotspotXmlStr = string.Empty;

try

{

    Stream fileStream = new FileStream(context.Server.MapPath("../data/Hotspot.xml"), FileMode.Open, FileAccess.Read, FileShare.Read);

    StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8);

    hotspotXmlStr = streamReader.ReadToEnd();

    streamReader.Dispose();

}

catch (Exception ex)

{

    logger.Error("读取XML文件Hotspot.xml出现异常!");

    logger.Error("异常描述:\t" + ex.Message);

    logger.Error("引发异常的方法:\t" + ex.TargetSite);

    logger.Error("异常堆栈:\t" + ex.StackTrace);

}

XML与DataSet相互转换的类(出处):

class XmlDatasetConvert

{

    //将xml对象内容字符串转换为DataSet

    public static DataSet ConvertXMLToDataSet(string xmlData)

    {

        StringReader stream = null;

        XmlTextReader reader = null;

        try

        {

            DataSet xmlDS = new DataSet();

            stream = new StringReader(xmlData);

            //从stream装载到XmlTextReader

            reader = new XmlTextReader(stream);

            xmlDS.ReadXml(reader);

            return xmlDS;

        }

        catch (System.Exception ex)

        {

            throw ex;

        }

        finally

        {

            if (reader != null) reader.Close();

        }

    }



    //将xml文件转换为DataSet

    public static DataSet ConvertXMLFileToDataSet(string xmlFile)

    {

        StringReader stream = null;

        XmlTextReader reader = null;

        try

        {

            XmlDocument xmld = new XmlDocument();

            xmld.Load(xmlFile);



            DataSet xmlDS = new DataSet();

            stream = new StringReader(xmld.InnerXml);

            //从stream装载到XmlTextReader

            reader = new XmlTextReader(stream);

            xmlDS.ReadXml(reader);

            //xmlDS.ReadXml(xmlFile);

            return xmlDS;

        }

        catch (System.Exception ex)

        {

            throw ex;

        }

        finally

        {

            if (reader != null) reader.Close();

        }

    }



    //将DataSet转换为xml对象字符串

    public static string ConvertDataSetToXML(DataSet xmlDS)

    {

        MemoryStream stream = null;

        XmlTextWriter writer = null;



        try

        {

            stream = new MemoryStream();

            //从stream装载到XmlTextReader

            writer = new XmlTextWriter(stream, Encoding.Unicode);



            //用WriteXml方法写入文件.

            xmlDS.WriteXml(writer);

            int count = (int)stream.Length;

            byte[] arr = new byte[count];

            stream.Seek(0, SeekOrigin.Begin);

            stream.Read(arr, 0, count);



            UnicodeEncoding utf = new UnicodeEncoding();

            return utf.GetString(arr).Trim();

        }

        catch (System.Exception ex)

        {

            throw ex;

        }

        finally

        {

            if (writer != null) writer.Close();

        }

    }



    //将DataSet转换为xml文件

    public static void ConvertDataSetToXMLFile(DataSet xmlDS, string xmlFile)

    {

        MemoryStream stream = null;

        XmlTextWriter writer = null;



        try

        {

            stream = new MemoryStream();

            //从stream装载到XmlTextReader

            writer = new XmlTextWriter(stream, Encoding.Unicode);



            //用WriteXml方法写入文件.

            xmlDS.WriteXml(writer);

            int count = (int)stream.Length;

            byte[] arr = new byte[count];

            stream.Seek(0, SeekOrigin.Begin);

            stream.Read(arr, 0, count);



            //返回Unicode编码的文本

            UnicodeEncoding utf = new UnicodeEncoding();

            StreamWriter sw = new StreamWriter(xmlFile);

            sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

            sw.WriteLine(utf.GetString(arr).Trim());

            sw.Close();

        }

        catch (System.Exception ex)

        {

            throw ex;

        }

        finally

        {

            if (writer != null) writer.Close();

        }

    }



}

 DataSet查询,参考DataTable.Select 方法

你可能感兴趣的:(Data)