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;
namespace _04对XML实现增删改查
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} List<User> listUsers = new List<User>();
private void Form1_Load(object sender, EventArgs e)
{
LoadData(); } //加载数据
private void LoadData()
{
// listUsers = new List<User>();
//设置DataGridView的样式
//取消显示第一列
dataGridView1.RowHeadersVisible = false;
//将单元格选中变成整行选中
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
XmlDocument doc = new XmlDocument();
doc.Load("haodongxi.xml");
//获得根节点
XmlElement users = doc.DocumentElement;
//获得根节点下面所有的子节点
XmlNodeList xnl = users.ChildNodes;
listUsers.Clear();
foreach (XmlNode item in xnl)
{
User user = new User();
user.ID = int.Parse(item.Attributes["id"].Value);
user.Name = item["name"].InnerText;
user.Age = int.Parse(item["age"].InnerText);
user.Gender = char.Parse(item["gender"].InnerText);
user.Password = item["password"].InnerText;
listUsers.Add(user);
}
//把集合作为数据源赋值给DatagridView
dataGridView1.DataSource = null;
//如果要dgv数据放生改变,则必须要给它的DataSource重新复制
dataGridView1.DataSource = listUsers;
} private void btnZhuCe_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("haodongxi.xml"); XmlElement users = doc.DocumentElement; XmlElement user = doc.CreateElement("user");
user.SetAttribute("id", txtID.Text.Trim());
users.AppendChild(user); XmlElement name = doc.CreateElement("name");
name.InnerText = txtName.Text;
user.AppendChild(name); XmlElement age = doc.CreateElement("age");
age.InnerText = txtAge.Text;
user.AppendChild(age); XmlElement gender = doc.CreateElement("gender");
gender.InnerText = rdoMan.Checked ? "男" : "女";
user.AppendChild(gender); XmlElement password = doc.CreateElement("password");
password.InnerText = txtPwd.Text;
user.AppendChild(password); //切记 保存
doc.Save("haodongxi.xml");
//重新加载数据
LoadData();
MessageBox.Show("注册成功");
} private void button1_Click(object sender, EventArgs e)
{
string id = txtUpdateID.Text; XmlDocument doc = new XmlDocument();
doc.Load("haodongxi.xml");
XmlElement users = doc.DocumentElement; //xPath Path XMLPath XmlNode xn = users.SelectSingleNode("/Users/user[@id='" + id + "']");
// /"Users/user[@id='" + "']"
//"/Users/user[@id='']" xn["name"].InnerText = txtUpdateName.Text.Trim();
xn["age"].InnerText = txtUpdateAge.Text.Trim();
xn["gender"].InnerText = rdoUpdateMan.Checked ? "男" : "女";
xn["password"].InnerText = txtUpdatePwd.Text; doc.Save("haodongxi.xml");
LoadData();
MessageBox.Show("修改成功"); } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
//删除指定数据
//获得选中行的ID
string id = dataGridView1.SelectedRows[].Cells[].Value.ToString(); XmlDocument doc = new XmlDocument();
doc.Load("haodongxi.xml"); //获得根节点
XmlElement users = doc.DocumentElement; //通过根节点 使用XPath路径找到id=...的节点;
XmlNode xn = users.SelectSingleNode("/Users/user[@id='" + id + "']"); //开始删除 users.RemoveChild(xn); doc.Save("haodongxi.xml");
MessageBox.Show("删除成功"); LoadData(); } private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtUpdateID.Text = dataGridView1.SelectedRows[].Cells[].Value.ToString(); txtUpdateName.Text = dataGridView1.SelectedRows[].Cells[].Value.ToString(); txtUpdateAge.Text = dataGridView1.SelectedRows[].Cells[].Value.ToString(); string gender = dataGridView1.SelectedRows[].Cells[].Value.ToString();
if (gender == "男")
{
rdoUpdateMan.Checked = true;
}
else
{
rdoUpdateWoman.Checked = true;
} txtUpdatePwd.Text = dataGridView1.SelectedRows[].Cells[].Value.ToString(); }
}
}

c# XML增删改查的更多相关文章

  1. 使用python操作XML增删改查

    使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...

  2. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  3. net对XML增删改查

    Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字.配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文 1.xml文件格式 <?xml version=& ...

  4. .net xml 增删改查基础复习及干货分享

    今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...

  5. Linq to XML 增删改查

    Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlEle ...

  6. XML 增删改查

    <?php $xmlpatch = 'index.xml'; $_id = '; $_title = 'title1'; $_content = 'content1'; $_author = ' ...

  7. c#操作xml增删改查

    1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...

  8. Linq To Xml操作XML增删改查

    对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...

  9. 4.Linq To Xml操作XML增删改查

    转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...

随机推荐

  1. RabbitMQ 权限分离&HA操作文档

    概要 默认情况下,使用帐号guest帐号登陆MQ,所有用户的queue信息,全部创建在根目录/的virtual host下,而这样,就会导致,任一用户登录后,都能看到其他用户的queue信息. 针对以 ...

  2. CAS单点登录系统简介

    一.cas简介 全名:Central Authentication Service特点: 1.开源的.多协议的 SSO 解决方案: Protocols : Custom Protocol . CAS ...

  3. 详解Top命令 输出命令行选项及代码

    Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运 ...

  4. ASP.NET MVC5中View显示Html

    @Html.Raw(Model.Name) @(new HtmlString(Model.Name));

  5. AngularJS中的http服务的简单用法

    我们可以使用内置的$http服务直接同外部进行通信.$http服务只是简单的封装了浏览器原生的XMLHttpRequest对象. 1.链式调用 $http服务是只能接受一个参数的函数,这个参数是一个对 ...

  6. 【转】js获取对象的所有属性和方法

    //有时候需要知道一个js对像的所有属性和方法来帮助调试,下面是再网上找到的一个比较给力的方法 function displayProp(obj){ var names=""; f ...

  7. 如何判断python的数据类型,用type函数

    用 type 函数 In [29]:  type(dataset) Out[29]: list 查询list的行数 In [38]: len(dataset) In [39]: Out[38]: 36 ...

  8. mysql权限表

    http://blog.csdn.net/zhangliangzi/article/details/51882710

  9. Tiny4412 Android 启动流程

    Android系统的启动主要包括三个阶段: ①BootLoader启动 ②Linux Kernel启动 ③Android系统启动 前面我们大致分析了前面两个步骤,即u-boot和内核的启动流程(内核启 ...

  10. vs中ffmpeg release版本崩溃问题(转)

    vs2010 win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0 ...