c# XML增删改查
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增删改查的更多相关文章
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
- net对XML增删改查
Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字.配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文 1.xml文件格式 <?xml version=& ...
- .net xml 增删改查基础复习及干货分享
今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...
- Linq to XML 增删改查
Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlEle ...
- XML 增删改查
<?php $xmlpatch = 'index.xml'; $_id = '; $_title = 'title1'; $_content = 'content1'; $_author = ' ...
- c#操作xml增删改查
1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...
- Linq To Xml操作XML增删改查
对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...
- 4.Linq To Xml操作XML增删改查
转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...
随机推荐
- 【redis】redis的 key的命名规则
key的命名规则 定义为 MS-TEN:SESSION_KEY_IN_LOGIN_NAME:fqh 使用:进行分割,这样存入redis的是有层次结构的,如下
- js 自定义方法 设置可选参数的方法
原链接 http://www.cnblogs.com/RightDear/p/3156652.html PHP有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ...
- Unity3D研究院之Assetbundle的原理(六十一)
www.xuanyusong.com/archives/2373 Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中,提供 ...
- nginx之 nginx-1.9.7 编译安装、理论简介
nginx是一个web网站常用的高性能http和反向代理服务器,其具有较好的并发能力,被网易.百度.腾讯.新浪等网站广泛使用. 一. 理论简介 1.首先弄清楚正向代理和反向代理 正向代理:代理客户端, ...
- grunt 压缩js css html 合并等配置与操作详解
module.exports = function(grunt){ //1.引入 grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTa ...
- malloc 动态分配内存
很久没有学习C了,复习下,有时候觉的C特别优美,学习算法和数据结构最佳选择. #include "stdafx.h" #include<stdlib.h> int ma ...
- java ----获取路径的各种方法(总结)
Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 那么针对这个站点的几个基本概念表述如下: 1. web站点的根目录:http: ...
- Apache Continuum 远程命令执行漏洞
这个是apache现在不维护的服务了. 服务使用了struts2框架,目前测试是使用的最新版.
- linux环境下Apache+Tomcat集群配置
写在前面 apache配置多个tomcat,实现请求分流,多个tomcat服务均衡负载,增加服务的可靠性.最近研究了一下,遇到许多问题,记录一下,方便以后查阅,不喜欢apache,nginx也是可以做 ...
- elasticsearch的功能及适用场景(2)
1.Elasticsearch的功能 (1)分布式的搜索引擎和数据分析引擎 搜索:百度,网站的站内搜索,IT系统的检索数据分析:电商网站,最近7天牙膏这种商品销量排名前10的商家有哪些:新闻网站,最近 ...