向XML文件添加数据的问题

shijies 2021-08-25 16:35:27

用以下代码创建XML文件:

            XmlDocument doc = new XmlDocument();
            //2、创建第一行描述信息
            XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
            //3、将创建的第一行描述信息添加到文档中
            doc.AppendChild(dec);
            //4、给文档添加根节点
            XmlElement Dict = doc.CreateElement("Dict");
            doc.AppendChild(Dict);
            XmlElement Jianzhipair = doc.CreateElement("Jianzhipair");
            Dict.AppendChild(Jianzhipair);
            XmlElement Jian = doc.CreateElement("Jian");
            Jianzhipair.AppendChild(Jian);
            XmlElement Zhi = doc.CreateElement("Zhi");
            Jianzhipair.AppendChild(Zhi);
            doc.Save("Zidingyidict.xml");

用以下代码添加数据:

  string strPath = "Zidingyidict.xml";
                xe = XElement.Load(strPath);
                XElement Jianzhipair = new XElement("Jianzhipair",
              new XElement("Jian", textBox1.Text),
              new XElement("Zhi", textBox2.Text)
              );
                xe.Add(Jianzhipair);
                xe.Save(strPath);
                dt.Rows.Add(textBox1.Text, textBox2.Text);

打开XML文件后发现添加的数据是从显示在dataGridView控件的第二行开始的,请问何故?

...全文
263 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijies 2021-08-26
  • 打赏
  • 举报
回复

现在没有这种现象了,我也没有搞明白。

shijies 2021-08-25
  • 打赏
  • 举报
回复

在打开文件的代码里,将 dataGridView1与 dt进行了绑定
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using System.Xml.Linq;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string strPath = "Zidingyidict.xml";
XElement xe;
DataTable dt;

    private void button1_Click(object sender, EventArgs e)
    {
        string strPath = null;
        openFileDialog1.Filter = "xml文件|*.xml";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            strPath = openFileDialog1.FileName;
        }
        DataSet myds = new DataSet();
        myds.ReadXml(strPath);
        dt = myds.Tables[0];
        dataGridView1.DataSource = dt;

    }
wanghui0380 2021-08-26
  • 举报
回复
@shijies 额,既然你是数据绑定的,既然你是Readxml。那么改啥还用循环添加呢。 datatable ds=(datatable)datagridview1.datasource //对你赋值给他,当然还可以反向取回来 ds.saveasxml()
gs0038 2021-08-25
  • 打赏
  • 举报
回复

你给的代码 跟 dataGridView控件没有什么关联呢

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧