none
dataset与xml的转换 RRS feed

  • 问题

  • 我使用现有的 dataset.ReadXml(filename)和 WriteXml(fileName);
    但是写出来了,读不进去……只能读取timer那一列,很奇怪。难道列名不支持中文么?
    我的dataset中只有一个table,名字为数字1
    很奇怪的是,列名后面为什么还会有这些_X0020这些东西?
    部分xml:
    <?xml version="1.0" standalone="yes"?>
    <NewDataSet>
      <_x0031_>
       
    • 已编辑 阿朵 2009年12月17日 4:49
    2009年12月14日 7:48

答案

  • 你好!

    你定义一个强类型的数据集使用这个数据集来 ReadXml、WriteXml 就没有问题了。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 Mog Liang 2009年12月18日 10:21
    2009年12月16日 1:36
    版主

全部回复

  • 你试下这
            //将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();
                }
            }


    参照下这里:http://hi.baidu.com/jiangbo_301/blog/item/610dc4255c04ba6835a80f56.html
    努力+方法=成功
    2009年12月14日 12:09
  • 你好!

    你定义一个强类型的数据集使用这个数据集来 ReadXml、WriteXml 就没有问题了。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 Mog Liang 2009年12月18日 10:21
    2009年12月16日 1:36
    版主
  • 另外,例名以数字命名可能会带来其它的问题。建议使用标准的命名规则。


    知识改变命运,奋斗成就人生!
    2009年12月16日 6:40
    版主