首页 > 代码库 > C#WinForm 用textbox与button控件,向xml文件中增加新的数据

C#WinForm 用textbox与button控件,向xml文件中增加新的数据

1 旧的xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <datas>
 3   <XianJia>
 4     <ShengHao>女娲娘娘</ShengHao>
 5     <Password>nwnn</Password>
 6   </XianJia>
 7   <XianJia>
 8     <ShengHao>后土娘娘</ShengHao>
 9     <Password>htnn</Password>
10   </XianJia>
11   <XianJia>
12     <ShengHao>释迦摩尼佛</ShengHao>
13     <Password>sjmnf</Password>
14   </XianJia>
15   <XianJia>
16     <ShengHao>元始天尊</ShengHao>
17     <Password>ystz</Password>
18   </XianJia>
19   <XianJia>
20     <ShengHao>太上老君</ShengHao>
21     <Password>tslj</Password>
22   </XianJia>
23   <XianJia>
24     <ShengHao>灵宝天尊</ShengHao>
25     <Password>lbtz</Password>
26   </XianJia>
27   <XianJia>
28     <ShengHao>耶和华</ShengHao>
29     <Password>yhh</Password>
30   </XianJia>
31   <XianJia>
32     <ShengHao>地藏王菩萨</ShengHao>
33     <Password>dzwps</Password>
34   </XianJia>
35   <XianJia>
36     <ShengHao>九天应元雷声普化天尊</ShengHao>
37     <Password>jtyylsphtz</Password>
38   </XianJia>
39 </datas>

 

 

 

2 UI

技术分享

 

 

 

3 code

 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.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Xml.Linq;
11 
12 namespace WindowsFormsApplication3
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20 
21 
22 
23         private void Form1_Load(object sender, EventArgs e)
24         {
25             ShowXmlFile();
26 
27             
28 
29         }
30 
31         private void ShowXmlFile()
32         {
33             List<User> datas = new List<User>();
34             //form 窗体在加载的时候,读取xml文件
35             XDocument xmlFile = XDocument.Load("1.xml");
36             XElement root = xmlFile.Root;
37 
38             foreach (var item in root.Elements())
39             {
40                 datas.Add(new User() { ShengHao = item.Element("ShengHao").Value, Password = item.Element("Password").Value });
41             }
42 
43             //将list数据与datagridview绑定
44             dataGridView1.DataSource = datas;
45 
46             //这行代码一开始是放在formload中的,但发现,每次增加新的数据之后,第一行都会被选中,所以
47             //把这行代码加入到showxmlfile中
48             dataGridView1.SelectedRows[0].Selected = false;
49 
50         }
51 
52         private void btnBook_Click(object sender, EventArgs e)
53         {
54 
55             User newUser = new User() { ShengHao = textNewShengHao.Text, Password = textNewPassword.Text };
56 
57             XDocument xmlFile = XDocument.Load("1.xml");
58             XElement root = xmlFile.Root;
59 
60             //在根节点下新建一个子节点,名字叫“XianJia”
61             XElement newXianJia = new XElement("XianJia");
62             newXianJia.SetElementValue("ShengHao", newUser.ShengHao);
63             newXianJia.SetElementValue("Password", newUser.Password);
64             root.Add(newXianJia);
65 
66             //保存
67             xmlFile.Save("1.xml");
68 
69             //为何防止用户,双击啥的,出现一堆重复的数据,所以在这里出现一个messagebox
70             //我还发现,没有这个messagebox,虽然数据已经增加到了xml文件中,
71             //但是那个datagridview控件却不显示新的,但是在重新运行这个程序的时候会显示
72             //所以,一个messagebox贴心又省心
73             MessageBox.Show("欢迎回家");
74 
75             //让datagirdview控件显示新的xml文件中的内容
76             ShowXmlFile();
77         }
78     }
79 }

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace WindowsFormsApplication3
 8 {
 9     /// <summary>
10     /// xml文件内容匹配类
11     /// </summary>
12     public class User
13     {
14         private string _shengHao;
15         private string _password;
16 
17         public string Password
18         {
19             get
20             {
21                 return _password;
22             }
23 
24             set
25             {
26                 _password = value;
27             }
28         }
29 
30         public string ShengHao
31         {
32             get
33             {
34                 return _shengHao;
35             }
36 
37             set
38             {
39                 _shengHao = value;
40             }
41         }
42     }
43 }

 

 

 

 

4 show1

技术分享

 

 

 

 

show2

技术分享

 

 

 

 

show3

技术分享

 

C#WinForm 用textbox与button控件,向xml文件中增加新的数据