Ling To Xml 学习之 对xml增、删、改、查

mac2022-06-30  59

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Xml.Linq;using System.Xml;namespace lingtoxml{public partial class Ling_student_xml : Form {string xmlPath = "StuInfo.xml";public Ling_student_xml() { InitializeComponent(); }private void Ling_student_xml_Load(object sender, EventArgs e) { datagridBind(); }public void datagridBind() { DataSet ds = new DataSet(); ds.ReadXml(xmlPath); dataGridView1.DataSource = ds.Tables[0]; }//添加信息到xml中去 private void AddEnter_Click(object sender, EventArgs e) {//1、加载xml XElement xelment = XElement.Load(xmlPath);//2、实例化泛型接口 IEnumerable<XElement> xelments = from xe in xelment.Elements("stu") select xe;//生成相应的数据 string SID = Convert.ToInt32(xelments.Max(xe => xe.Attribute("ID").Value)+1).ToString("0000"); XElement stu = new XElement("stu", new XAttribute("ID", SID),new XElement("Name",textBox1.Text),new XElement("Sex",textBox2.Text),new XElement("Age",textBox3.Text),new XElement("Grad",textBox4.Text) ); xelment.Add(stu);//添加xml元素 xelment.Save(xmlPath);//保存xml datagridBind(); }// 根据选择的ID获得详细信息 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {string keys = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();//获取ID XElement xelment=XElement.Load(xmlPath);//加载xml//根据编号查找 IEnumerable<XElement> xelments = from xe in xelment.Elements("stu")where xe.Attribute("ID").Value == keys select xe;foreach (XElement item in xelments) { textBox5.Text = item.Attribute("ID").Value.ToString(); textBox1.Text = item.Element("Name").Value.ToString(); textBox2.Text = item.Element("Sex").Value.ToString(); textBox3.Text = item.Element("Age").Value.ToString(); textBox4.Text = item.Element("Grad").Value.ToString(); } }private void button1_Click(object sender, EventArgs e) { XElement xelment = XElement.Load(xmlPath);if (textBox5.Text != "") { IEnumerable<XElement> xelments = from xe in xelment.Elements("stu") select xe;if (xelments.Count() != 0) { XElement newXE = xelments.First(); newXE.SetAttributeValue("ID", textBox5.Text); newXE.ReplaceNodes(new XElement("Name",textBox1.Text),new XElement("Sex",textBox2.Text),new XElement("Age",textBox3.Text),new XElement("Grad",textBox4.Text) ); } xelment.Save(xmlPath); } datagridBind(); } }}

转载于:https://www.cnblogs.com/Mr0909/archive/2011/07/25/2116691.html

相关资源:C# LinqXML删除一个元素的所有属性
最新回复(0)