📄 form1.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace MySchoolPrj
{
public partial class MyStudentInfoFrm : Form
{
public MyStudentInfoFrm()
{
InitializeComponent();
}
private XmlNode node;
//创建XMLDecument对象
private XmlDocument doc = null;
//创建状态变量
private int State;
//创建泛式集合存贮数据
List<Student> stu = new List<Student>();
//将泛式集合里的数据显示到界面上
//private void showDate() {
// foreach (Student s in stu) {
// ListViewItem lvi = new ListViewItem();
// lvi.Text = s.StuNo;
// lvi.SubItems.Add(s.StuName);
// lvi.SubItems.Add(s.Age.ToString());
// if (s.Sex == 0)
// lvi.SubItems.Add("男");
// else
// lvi.SubItems.Add("女");
// lvi.SubItems.Add(s.BirthDay.ToString());
// lstStuInfo.Items.Add(lvi);
// }
//}
private void MyStudentInfoFrm_Load(object sender, EventArgs e)
{
doc = new XmlDocument();
doc.Load(@"E:\student.xml");
node = doc.DocumentElement;
rdbtnMan.Checked = true;
dtpkBirthDay.MaxDate = DateTime.Now;
lstStuInfo.Enabled = true;
gbEdition.Enabled = false;
btnAdd.Enabled = true;
btnUpdate.Enabled = true;
btnDelete.Enabled = true;
btnSave.Enabled = false;
btnCancel.Enabled = false;
btnClose.Enabled = true;
lstStuInfo.FullRowSelect = true;//正行选中
showData(node);
}
//取界面数据
private Student getDate() {
Student s = new Student();
s.StuNo = txtStuNo.Text.Trim();
s.StuName = txtStuName.Text.Trim();
s.Age = Convert.ToInt32(txtAge.Text);
if (rdbtnMan.Checked)
s.Sex = 0;
else
s.Sex = 1;
s.BirthDay = dtpkBirthDay.Value;
return s;
}
//将数据保存在泛型集合中
//private void saveDate(Student s) {
// stu.Add(s);
//}
private void btnAdd_Click(object sender, EventArgs e)
{
State = 0;
lstStuInfo.Enabled = false;
gbEdition.Enabled = true;
btnAdd.Enabled = false;
btnUpdate.Enabled = false;
btnDelete.Enabled = false;
btnSave.Enabled = true;
btnCancel.Enabled = true;
btnClose.Enabled = false;
}
private XmlNode updateNode;
private void btnUpdate_Click(object sender, EventArgs e)
{
State = 1;
lstStuInfo.Enabled = false;
gbEdition.Enabled = true;
btnAdd.Enabled = false;
btnUpdate.Enabled = false;
btnDelete.Enabled = false;
btnSave.Enabled = true;
btnCancel.Enabled = true;
btnClose.Enabled = false;
updateNode = setData(node);
}
private void btnDelete_Click(object sender, EventArgs e)
{
lstStuInfo.Enabled = true;
gbEdition.Enabled = false;
btnAdd.Enabled = true;
btnUpdate.Enabled = true;
btnDelete.Enabled = true;
btnSave.Enabled = false;
btnCancel.Enabled = false;
btnClose.Enabled = true;
deleteData(node);
showData(node);
}
//将集合里的数据放到界面上
private void setDate(Student s) {
txtStuNo.Text = s.StuNo;
txtStuName.Text = s.StuName;
txtAge.Text = s.Age.ToString();
if (s.Sex == 0)
rdbtnMan.Checked = true;
else
rdtbnWoman.Checked = true;
dtpkBirthDay.Value = s.BirthDay;
}
private void btnSave_Click(object sender, EventArgs e)
{
lstStuInfo.Items.Clear();
if (State == 0) {
//saveDate(getDate());
saveData(node, getDate());
}
else if (State == 1) {
//string No = lstStuInfo.SelectedItems[0].Text;
//foreach (Student s in stu) {
// if (s.StuNo == No) {
// Student stu1;
// stu1 = s;
// setDate(stu1);
// break;
// }
//}
updateData(updateNode);
}
showData(node);
clearData();
lstStuInfo.Enabled = true;
gbEdition.Enabled = false;
btnAdd.Enabled = true;
btnUpdate.Enabled = true;
btnDelete.Enabled = true;
btnSave.Enabled = false;
btnCancel.Enabled = false;
btnClose.Enabled = true;
}
private void btnClose_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnCancel_Click(object sender, EventArgs e)
{
lstStuInfo.Enabled = true;
gbEdition.Enabled = false;
btnAdd.Enabled = true;
btnUpdate.Enabled = true;
btnDelete.Enabled = true;
btnSave.Enabled = false;
btnCancel.Enabled = false;
btnClose.Enabled = true;
}
//清空界面数据
private void clearData() {
txtStuNo.Text = "";
txtStuName.Text = "";
txtAge.Text = "";
rdbtnMan.Checked = true;
dtpkBirthDay.Value = Convert.ToDateTime("1980-01-1");
}
//将界面数据保存到XML中
private void saveData(XmlNode node,Student s) {
int index = 1;
if (node.ChildNodes.Count > 0)
index = Convert.ToInt32(node.LastChild.Attributes["index"].Value)+1;
XmlNode newStudent = doc.CreateElement("stu" + index);
node.AppendChild(newStudent);
XmlAttribute attribute = doc.CreateAttribute("index");
attribute.Value = index.ToString();
newStudent.Attributes.Append(attribute);
XmlNode child = doc.CreateElement("stuNo");
child.InnerText = s.StuNo;
newStudent.AppendChild(child);
child = doc.CreateElement("stuName");
child.InnerText = s.StuName;
newStudent.AppendChild(child);
child = doc.CreateElement("age");
child.InnerText = s.Age.ToString();
newStudent.AppendChild(child);
child = doc.CreateElement("sex");
child.InnerText = s.Sex.ToString() ;
newStudent.AppendChild(child);
child = doc.CreateElement("birthday");
child.InnerText = s.BirthDay.ToString();
newStudent.AppendChild(child);
doc.Save(@"e:\student.xml");
}
//从XML中取数据显示到listview中
private void showData(XmlNode node) {
lstStuInfo.Items.Clear();
if (node.ChildNodes.Count > 0)
{
foreach (XmlNode temp in node.ChildNodes)
{
string no = temp.ChildNodes[0].InnerText;
string name = temp.ChildNodes[1].InnerText;
string age = temp.ChildNodes[2].InnerText;
string sex;
if (temp.ChildNodes[3].InnerText == "0")
sex = "男";
else
sex = "女";
string birthday = temp.ChildNodes[4].InnerText;
ListViewItem lvi = new ListViewItem();
lvi.Text = no;
lvi.SubItems.AddRange(new string[] { name, age, sex, birthday });
lstStuInfo.Items.Add(lvi);
}
}
}
//修改XML中的数据
private void updateData(XmlNode temp) {
temp.ChildNodes[0].InnerText = txtStuNo.Text;
temp.ChildNodes[1].InnerText = txtStuName.Text;
temp.ChildNodes[2].InnerText = txtAge.Text;
if (rdbtnMan.Checked)
temp.ChildNodes[3].InnerText = "0";
else
temp.ChildNodes[3].InnerText = "1";
temp.ChildNodes[4].InnerText = dtpkBirthDay.Value.ToString();
doc.Save(@"e:\student.xml");
}
//删除XML中的数据
private void deleteData(XmlNode node) {
string no = lstStuInfo.SelectedItems[0].Text;
foreach (XmlNode temp in node.ChildNodes)
{
if (no == temp.ChildNodes[0].InnerText)
{
node.RemoveChild(temp);
}
}
doc.Save(@"e:\student.xml");
}
//将选中项的数据放到界面上
private XmlNode setData(XmlNode node) {
string no = lstStuInfo.SelectedItems[0].Text;
XmlNode selectedNode=node.ChildNodes[0];
foreach (XmlNode temp in node.ChildNodes)
{
if (no == temp.ChildNodes[0].InnerText)
{
txtStuNo.Text = temp.ChildNodes[0].InnerText;
txtStuName.Text = temp.ChildNodes[1].InnerText;
txtAge.Text = temp.ChildNodes[2].InnerText;
if (temp.ChildNodes[3].InnerText == "0")
rdbtnMan.Checked = true;
else
rdtbnWoman.Checked = true;
dtpkBirthDay.Value=Convert.ToDateTime(temp.ChildNodes[4].InnerText);
selectedNode = temp;
}
}
return selectedNode;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -