设为首页 加入收藏

TOP

C#基础知识-使用XML完成一个小程序(十一)(一)
2019-09-03 00:30:57 】 浏览:68
Tags:基础知识 使用 XML 完成 一个 程序 十一

上一篇中讲到XML基本的结构,还有增删改查的方法,这一篇中我们就来利用XML来完成一个简单的订单系统,主要是实现一个简单学生名单的增删改查,如果想要应用到实际的环境中建议考虑数据量的问题,如果数据量大使用XML的话会比较耗时,使用SQL的性能会好一些

 

这里使用WinForm窗体程序,大致界面如下:

 

  1. 创建了两个窗体,一个主窗体用来显示名单数据,当添加或者编辑操作时则使用另外一个窗体。
  2. 主窗体中放置四个按钮,以及一个DataGridView控件,另外一个添加、编辑窗体,则按照相应的字段放置好控件。
  3. 给各控件命好名。

XML文档的格式如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 
 3 <学生名单>
 4 
 5   <学生 Name="李四一" class="0102">
 6 
 7     <性别></性别>
 8 
 9     <生日>1999年1月2日</生日>
10 
11     <学号>20170</学号>
12 
13   </学生>
14 
15   <学生 Name="张三三" class="高一">
16 
17     <性别></性别>
18 
19     <学号>0102</学号>
20 
21     <生日>2017年6月18日</生日>
22 
23   </学生>
24 
25 </学生名单>

 学生名单为根元素,班级为根元素中的子元素,班级中又嵌套<学生>标记,了解了数据是以怎么的结构储存那么下面就继续。

 

数据在DataGridView中的显示
将XML中的数据,顺序显示在DataGridView控件中
 

 1 //创建一个datatable存储XML中的数据
 2 
 3 DataTable dt = new DataTable();
 4 
 5 //指定每一列的列名,和数据类型
 6 
 7 dt.Columns.Add("Id", (typeof(System.String)));
 8 
 9 dt.Columns.Add("班级", (typeof(System.String)));
10 
11 dt.Columns.Add("姓名", (typeof(System.String)));
12 
13 dt.Columns.Add("学号", (typeof(System.String)));
14 
15 dt.Columns.Add("生日", (typeof(System.String)));
16 
17 dt.Columns.Add("性别", (typeof(System.String)));
18 
19 //创建一个DataRow对象
20 
21 DataRow dr = dt.NewRow();
22 
23  
24 
25 XmlDocument doc = new XmlDocument();
26 
27 //为相对路径表示前二级的目录
28 
29 doc.Load(@"..//..//Students.xml");
30 
31 XmlElement root = doc.DocumentElement;
32 
33 XmlNodeList studentNodes = root.GetElementsByTagName("学生");
34 
35 //使用foreach遍历集合元素
36 
37 foreach(var item in studentNodes)
38 
39 {
40 
41     dr["Id"] = ((XmlElement)item).GetAttribute("Id");
42 
43     dr["班级"] = ((XmlElement)item).GetAttribute("Class");
44 
45     dr["姓名"] = ((XmlElement)item).GetAttribute("Name");
46 
47     dr["学号"] = ((XmlElement)item).GetElementsByTagName("学号")[0].InnerText;
48 
49     dr["生日"] = ((XmlElement)item).GetElementsByTagName("生日")[0].InnerText;
50 
51     dr["性别"] = ((XmlElement)item).GetElementsByTagName("性别")[0].InnerText;
52 
53     dt.Rows.Add(dr);
54 
55 }
56 
57 //将DataTable绑定到DataGridView控件
58 
59 dgvStudents.DataSource = dt;

 

增加记录

因为添加学生和编辑学生都需要在同一个窗体,那么在打开添加或编辑窗体时使用构造函数来传值,并判断是编辑还是添加。 

  1 添加编辑窗体代码:
  2 
  3 public partial class FrmStudentAddandEdit : Form
  4 
  5 {
  6 
  7 //全局变量接受传值
  8 
  9 bool IsAdd;
 10 
 11 string Name;
 12 
 13     //使用构造函数进行传值 true为增加,false为编辑
 14 
 15     public FrmStudentAddandEdit(bool isAdd, string name)
 16 
 17 {
 18 
 19 this.IsAdd = isAdd;
 20 
 21 this.Name = name;
 22 
 23         InitializeComponent();
 24 
 25     }
 26 
 27 }
 28 
 29  
 30 
 31 主窗体添加按钮单击事件代码:
 32 
 33 private void btnAdd_Click(object sender, EventArgs e)
 34 
 35 {
 36 
 37 //在创建窗体时传值
 38 
 39      FrmStudentAddandEdit form = new FrmStudentAddandEdit(true);
 40 
 41      form.ShowDialog();
 42 
 43 }
 44 
 45  
 46 
 47 新增记录代码:
 48 
 49 private void btnOK_Click(object sender, EventArg
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇vs 中引用自己创建程序集出现小叹.. 下一篇ADO.NET中的DataSet和DataReader

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目