xml大项目,增删改查
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; namespace xml大项目
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
LoadXDocument();
} private void LoadXDocument()
{
XDocument xdoc = XDocument.Load("1.xml");
List<User> list = new List<User>();
foreach (XElement user in xdoc.Root.Elements())
{
list.Add(new User()
{
Name = user.Element("name").Value,
Id = user.Attribute("id").Value,
Password = user.Element("password").Value
});
}
dgv.AutoGenerateColumns = false;//取消自动生成列
dgv.DataSource = list;//显示的列等于集合的列,为该控件绑定数据
dgv.SelectedRows[].Selected = false;//取消默认选中第一行
} private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
//把选中的数据放到右侧文本框中
if (dgv.SelectedRows.Count > )//有被选中的行
{
labId.Text = dgv.SelectedRows[].Cells[].Value.ToString();//获取id
txtUpdateName.Text = dgv.SelectedRows[].Cells[].Value.ToString();//获取用户名
txtUpdatePwd.Text = dgv.SelectedRows[].Cells[].Value.ToString();//获取密码
} } private void btnInsert_Click(object sender, EventArgs e)
{
//点击注册后,把里面的信息加入xml并显示在左边框里
//获取id,用户名,密码
string id = txtId.Text;//id
string name = txtName.Text;//用户名
string password = txtPwd.Text;//密码
//读取xml文件
XDocument xdoc = XDocument.Load("1.xml");
//获取根节点
XElement root = xdoc.Root;
//添加user标签
XElement user = new XElement("user");
user.SetAttributeValue("id", id);//属性
user.SetElementValue("name", name);
user.SetElementValue("password", password);
root.Add(user);
//保存
//user.Save("1.xml");
//root.Save("1.xml");
xdoc.Save("1.xml");
MessageBox.Show("注册成功!");
LoadXDocument();//刷新
} private void tsmDelete_Click(object sender, EventArgs e)
{
//右键删除
//点到一行
if (dgv.SelectedRows.Count > )
{
//找到id
string id = dgv.SelectedRows[].Cells[].Value.ToString();
//根据id获取xml对应元素
//读取xml文件
XDocument xdoc = XDocument.Load("1.xml");
//获取根节点
XElement xele = xdoc.Root;
foreach (XElement user in xele.Elements())
{
if (user.Attribute("id").Value == id)
{
user.Remove();
}
}
//一定要记得保存啊!!!
xdoc.Save("1.xml");
LoadXDocument();//刷新
}
} private void btnUpdate_Click(object sender, EventArgs e)
{
//修改
//判断有选中
if (dgv.SelectedRows.Count > )
{
//获取id,文本框里的修改后的账号,密码
string id = dgv.SelectedRows[].Cells[].Value.ToString();
string name = txtUpdateName.Text;
string password = txtUpdatePwd.Text;
//写入xml
XDocument xdoc = XDocument.Load("1.xml");
XElement xele = xdoc.Root;
foreach (XElement user in xele.Elements())
{
if (user.Attribute("id").Value == id)
{
user.SetElementValue("name",name);
user.SetElementValue("password",password);
}
}
//保存xml
xdoc.Save("1.xml");
//刷新
LoadXDocument();
}
} }
}
xml大项目,增删改查的更多相关文章
- C#学习笔记(6)——大项目增删改查
说明(2017-5-28 11:35:39): 1. 需要注意的地方很多 2. 首先是连接字符串str要直接写在类里面,不然每个按钮里面都要写一遍. 3. 查询用到sqlDataReader等三个方法 ...
- java对xml文件做增删改查------摘录
java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...
- webapi初学项目(增删改查)
初学wenapi做了一个从数据库增删改查的项目 webapi: 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api; 2.注册路由: ...
- 使用dom4j对xml文件进行增删改查
1.使用dom4j技术对dom_demo.xml进行增删改查 首选要下载dom4j的jar包 在官网上找不到,网上搜索了一下在这个链接:http://sourceforge.net/projects/ ...
- XML(五)dom4j增删改查
book2.xml <? xml version="1.0" encoding="UTF-8"?> <书架> <书> < ...
- webapi初学项目(增删改查),webapi增删
wenapi做了一个从数据库增删改查的项目 webapi: 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api; 2.注册路由: 路 ...
- idea社区版+第一个spring boot项目+增删改查+yml修改端口号
参考:https://www.cnblogs.com/tanlei-sxs/p/9855071.html 中途出现问题时参考了太多 1.下载idea社区版 2.在settings -> Plug ...
- jsp+Servlet+JavaBean+JDBC+MySQL项目增删改查
1简单的Mvc,分层建包. java resources src/mian/java (1)dao 包 JDBC连接类,连接数据库.增删改查方法,其他的方法. (2)model包 实体类,数据库字段, ...
- C# 本地xml文件进行增删改查
项目添加XML文件:FaceXml.xml,并复制到输出目录 FaceXml.xml <?xml version="1.0" encoding="utf-8&quo ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
随机推荐
- servlet 服务器HTTP响应头设置示例(response用法)
1,Location 用于重定向,和返回状态码302结合使用. 代码示例: response.setStatus(302); response.setHeader("location&quo ...
- JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生
一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解 ...
- hdu1690Bus System--解题报告
题意:有一个公交系统的收费标准例如以下表: 然后问:给出 这些L1~4 & C1~4的值,然后 N个站.列出每一个站的X坐标.然后询问M次,问两个站台的最小花费 题解:那么这里非常明显是最短路 ...
- mysql sleep连接太多怎么办
摘要:interactive_timeout和wait_timeout参数对sleep连接的影响 interactive_timeout 参数含义:服务器关闭交互式连接前等待活动的秒数.交互式客户端定 ...
- Asp.Net中using的使用的方法(转)
摘自:http://blog.sina.com.cn/s/blog_6aa9c73801018ggw.html 一.强制资源整理(实用性非常强,希望大家多多使用,比try-catch-finaly效率 ...
- Lucene使用与优化(转)
原文链接:http://blog.csdn.net/hongfu_/article/details/1933346 本文所使用的Lucene版本较低,年代久远,许多API可能已经变了. 1 lucen ...
- hadoop集群虚拟机配置
hadoop_1, hadoop_2, hadoop_3 用户名riluo 密码19841984 查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带O ...
- Linux标识进程
一.前言 其实两年前,本站已经有了一篇关于进程标识的文档,不过非常的简陋,而且代码是来自2.6内核.随着linux container.pid namespace等概念的引入,进程标识方面已经有了天翻 ...
- Linux进程冻结技术
1 什么是进程冻结 进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态. 2 为什么需要冻结技术 假 ...
- hdu 1213 How Many Tables(并查集求无向图有几个连通分量)
代码: #include<cstdio> #include<cstring> using namespace std; int n,m; int father[1005]; i ...