1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.Xml.Linq; 10 11 namespace xml大项目 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 20 private void Form1_Load(object sender, EventArgs e) 21 { 22 LoadXDocument(); 23 } 24 25 private void LoadXDocument() 26 { 27 XDocument xdoc = XDocument.Load("1.xml"); 28 List<User> list = new List<User>(); 29 foreach (XElement user in xdoc.Root.Elements()) 30 { 31 list.Add(new User() 32 { 33 Name = user.Element("name").Value, 34 Id = user.Attribute("id").Value, 35 Password = user.Element("password").Value 36 }); 37 } 38 dgv.AutoGenerateColumns = false;//取消自动生成列 39 dgv.DataSource = list;//显示的列等于集合的列,为该控件绑定数据 40 dgv.SelectedRows[0].Selected = false;//取消默认选中第一行 41 } 42 43 private void dgv_CellClick(object sender, DataGridViewCellEventArgs e) 44 { 45 //把选中的数据放到右侧文本框中 46 if (dgv.SelectedRows.Count > 0)//有被选中的行 47 { 48 labId.Text = dgv.SelectedRows[0].Cells[0].Value.ToString();//获取id 49 txtUpdateName.Text = dgv.SelectedRows[0].Cells[1].Value.ToString();//获取用户名 50 txtUpdatePwd.Text = dgv.SelectedRows[0].Cells[2].Value.ToString();//获取密码 51 } 52 53 54 } 55 56 private void btnInsert_Click(object sender, EventArgs e) 57 { 58 //点击注册后,把里面的信息加入xml并显示在左边框里 59 //获取id,用户名,密码 60 string id = txtId.Text;//id 61 string name = txtName.Text;//用户名 62 string password = txtPwd.Text;//密码 63 //读取xml文件 64 XDocument xdoc = XDocument.Load("1.xml"); 65 //获取根节点 66 XElement root = xdoc.Root; 67 //添加user标签 68 XElement user = new XElement("user"); 69 user.SetAttributeValue("id", id);//属性 70 user.SetElementValue("name", name); 71 user.SetElementValue("password", password); 72 root.Add(user); 73 //保存 74 //user.Save("1.xml"); 75 //root.Save("1.xml"); 76 xdoc.Save("1.xml"); 77 MessageBox.Show("注册成功!"); 78 LoadXDocument();//刷新 79 } 80 81 private void tsmDelete_Click(object sender, EventArgs e) 82 { 83 //右键删除 84 //点到一行 85 if (dgv.SelectedRows.Count > 0) 86 { 87 //找到id 88 string id = dgv.SelectedRows[0].Cells[0].Value.ToString(); 89 //根据id获取xml对应元素 90 //读取xml文件 91 XDocument xdoc = XDocument.Load("1.xml"); 92 //获取根节点 93 XElement xele = xdoc.Root; 94 foreach (XElement user in xele.Elements()) 95 { 96 if (user.Attribute("id").Value == id) 97 { 98 user.Remove(); 99 } 100 } 101 //一定要记得保存啊!!! 102 xdoc.Save("1.xml"); 103 LoadXDocument();//刷新 104 } 105 } 106 107 private void btnUpdate_Click(object sender, EventArgs e) 108 { 109 //修改 110 //判断有选中 111 if (dgv.SelectedRows.Count > 0) 112 { 113 //获取id,文本框里的修改后的账号,密码 114 string id = dgv.SelectedRows[0].Cells[0].Value.ToString(); 115 string name = txtUpdateName.Text; 116 string password = txtUpdatePwd.Text; 117 //写入xml 118 XDocument xdoc = XDocument.Load("1.xml"); 119 XElement xele = xdoc.Root; 120 foreach (XElement user in xele.Elements()) 121 { 122 if (user.Attribute("id").Value == id) 123 { 124 user.SetElementValue("name",name); 125 user.SetElementValue("password",password); 126 } 127 } 128 //保存xml 129 xdoc.Save("1.xml"); 130 //刷新 131 LoadXDocument(); 132 } 133 } 134 135 136 } 137 }