• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

向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控件的第二行开始的,请问何故?

...全文
75 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shijies 08-26

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

回复
shijies 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;

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

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

回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2021-08-25 16:35
社区公告

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