⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 一个学生管理系统
💻 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 + -