设置首页收藏本站
开启左侧

C#添加一个XML文件时 ,为什么只有两行?

[复制链接]
zrp785962235 发表于 2018-3-18 10:19:11 | 显示全部楼层 |阅读模式
XML文件中只有以下两行,
<?xml version="1.0" standalone="yes"?>
<DataBase xmlns="http:---//tempuri.org/---DataBase.xsd"> 因不能发表URL 后面“---”是我加上去的

在软件初始化时就检查文件是否存在,如果不存在就添加一个 以下为代码
     if (File.Exists("ModelSystem.xml"))
            {
                dataBase.zhangrp.ReadXml("ModelSystem.xml");
            }
            else
            {
                dataBase.zhangrp.Rows.Add();
                //dataBase.zhangrp.WriteXml("ModelSystem.xml");
            }


然后再读取XML时出现报错 dataBase.zhangrp.ReadXml("ModelSystem.xml"); 错误为: 没有任何行
try
                        {

                            dataBase.zhangrp.ReadXml("ModelSystem.xml");
                            dataBase.zhangrp.Rows[0][dataBase.zhangrp.上方前电芯模板路径Column] = FileNamepath;
                            if (File.Exists("ModelSystem.xml"))
                            {
                                File.Delete("ModelSystem.xml");
                            }
                            dataBase.zhangrp.WriteXml("ModelSystem.xml");
                            dataBase.zhangrp.Clear();
                            label2.Text = "";
                            Application.DoEvents();
                        }
                        catch (System.Exception ex)
                        {
                            MessageBox.Show("建立ModelSystem.xml文件失败!" + ex.ToString());
                            if (File.Exists("ModelSystem.xml"))
                            {
                                File.Delete("ModelSystem.xml");
                            }
                        }

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2018-3-18 10:38:39 | 显示全部楼层
也就是你现在是没有*.xml文件,创建了一个文件写入内容后读取还是空的?
我觉得你的类要么有问题,不然就是文件没有权限!一般这种文件可以创建,但是有的需要以独占方式打开。

先排查下权限问题,再看看你的xml读写的类是否功能正常吧!下面是我们的切换助手的配置文件UpdateList.xml
  1. <?xml version="1.0" encoding="gb2312"?>
  2. <AutoUpdater>
  3.   <description>自动升级向导</description>
  4.   <Updater>
  5.         <Url>https://www.51halcon.com/down/shv/</Url>
  6.         <LastUpdateTime>2018-03-16</LastUpdateTime>
  7.   </Updater>
  8.   <Application applicationId="SHV">
  9.     <EntryPoint>SHV.exe</EntryPoint>
  10.     <Location>.</Location>
  11.         <Version>2.2.7.0</Version>
  12.   </Application>
  13.   <Files>
  14.            <File Ver="2.2.7.0" Name="SHV.exe" />
  15.            <File Ver="2.2.7.0" Name="SHV_x64.exe" />
  16.            <File Ver="2.2.5.0" Name="Config.cfg"/>
  17.            <File Ver="0.86.0.518" Name="ICSharpCode.SharpZipLib.dll"/>
  18.            <File Ver="10.0.3.21018" Name="Newtonsoft.Json.dll"/>
  19.   </Files>
  20. </AutoUpdater>
复制代码
是不是很整齐?我这个读取的也是用C#完成的,可读可写!

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| zrp785962235 发表于 2018-3-18 11:06:25 | 显示全部楼层
问题找到了,以下代码亲测没问题,主要是要注意dataBase.zhangrp.Clear();这个方法不能随意用,在清除之前必须确保文件存在,否则报错,非常感谢您的热心 ,谢谢!
                      try
                            {
                                dataBase.zhangrp.ReadXml("ModelSystem.xml");
                            }
                            catch
                            { dataBase.zhangrp.Rows.Add(); }
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2018-3-18 11:11:45 | 显示全部楼层
嗯,这个问题确实是逻辑使用上的问题!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表