.NET-22-Xml文件的增删查改以及验证登录

对xml文件的增删查改,以及使用xml文件存储数据进行登录的验证

界面如下

代码如下

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        /// <summary>
        /// 加载信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            LoadXml();


            ////验证登录
            //string name = txtNewName.Text.Trim();
            //string psd = txtNewAge.Text.Trim();
            //XmlDocument xmlDom = new XmlDocument();
            //xmlDom.Load(@"xmldom.xml");
            ////查询name
            //XmlNode node = xmlDom.SelectSingleNode("/school/class/student[.='" + name + "']");
            //if (node != null)
            //{
            //    //如果存在则查找他后面的兄弟节点
            //    if (node.NextSibling.InnerText == psd)
            //    {
            //        //登录成功

            //    }
            //}
            //else
            //{
            //    MessageBox.Show("用户名不存在");
            //}
        }


        /// <summary>
        /// 加载Xml文件
        /// </summary>
        private void LoadXml()
        {
            //清空界面
            listView1.Items.Clear();

            //加载Xml文件信息
            XmlDocument xmlDom = new XmlDocument();
            //加载Xml文件信息
            xmlDom.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
            //查询出所有的学生信息
            XmlNodeList nodeList = xmlDom.SelectNodes("/school/class/student");

            //遍历加载到listView中
            foreach (XmlNode item in nodeList)
            {
                //新增一个ListViewItem
                ListViewItem lvItem = new ListViewItem();
                lvItem.SubItems.Add(item.SelectSingleNode("name").InnerText);
                lvItem.SubItems.Add(item.SelectSingleNode("age").InnerText);
                lvItem.SubItems.Add(item.SelectSingleNode("gender").InnerText);
                lvItem.SubItems.Add(item.SelectSingleNode("address").InnerText);

                listView1.Items.Add(lvItem);
            }
        }


        /// <summary>
        /// 新增信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnNew_Click(object sender, EventArgs e)
        {
            string name = this.txtNewName.Text.Trim();
            string age = this.txtNewAge.Text.Trim();
            string gender = this.txtNewGender.Text.Trim();
            string address = this.txtNewAddress.Text.Trim();
            //加载信息
            XmlDocument xmlDom = new XmlDocument();
            xmlDom.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
            //获取根节点
            XmlElement xmlRoot = xmlDom.DocumentElement;

            //判断是否已经存在
            if (xmlDom.SelectNodes("/school/class[@id='c01']/student/name[.='" + name + "']").Count > 0)
            {
                MessageBox.Show("名称重复");
            }
            else
            {
                //添加一个节点
                XmlElement xmlNowStudent = xmlDom.CreateElement("student");
                XmlElement xmlNowNane = xmlDom.CreateElement("name");
                xmlNowNane.InnerText = name;
                xmlNowStudent.AppendChild(xmlNowNane);

                XmlElement xmlNowAge = xmlDom.CreateElement("age");
                xmlNowAge.InnerText = age;
                xmlNowStudent.AppendChild(xmlNowAge);

                XmlElement xmlNowGender = xmlDom.CreateElement("gender");
                xmlNowGender.InnerText = gender;
                xmlNowStudent.AppendChild(xmlNowGender);

                XmlElement xmlNowAddress = xmlDom.CreateElement("address");
                xmlNowAddress.InnerText = address;
                xmlNowStudent.AppendChild(xmlNowAddress);

                //保存Xml文件
                xmlDom.Save(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
                //重新加载
                LoadXml();
            }

            //XDocument xDom = XDocument.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xdom.xml");
            ////创建一个XElemet
            //XElement xe = new XElement();
            ////获取根节点添加进去
            //xDom.Root.Add(xe);
            ////保存
            //xDom.Save(@"C:\Users\Administrator\Desktop\test\练习用文件\xdom.xml");


        }

        /// <summary>
        /// 修改信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            //创建对象
            XmlDocument xmlDom = new XmlDocument();
            //加载Xml文件
            xmlDom.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
            //获取选择的节点
            XmlNode xmlSelect = xmlDom.SelectSingleNode("/school/class[@id='c01']/student[.='" + this.txtUpName.Text.Trim() + "']");
            //根据选择的节点,修改信息
            xmlSelect.SelectSingleNode("name").InnerText = this.txtUpName.Text.Trim();
            xmlSelect.SelectSingleNode("age").InnerText = this.txtUpAge.Text.Trim();
            xmlSelect.SelectSingleNode("gender").InnerText = this.txtUpGender.Text.Trim();
            xmlSelect.SelectSingleNode("address").InnerText = this.txtUpAddress.Text.Trim();

            //保存Xml文件
            xmlDom.Save(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
            //重新加载
            LoadXml();
        }

        /// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count > 0)
            {
                //获取选中行的名称
                string name = listView1.SelectedItems[0].SubItems[0].Text;

                //加载信息
                XmlDocument xmlDom = new XmlDocument();
                xmlDom.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
                //获取根节点
                XmlElement xmlRoot = xmlDom.DocumentElement;

                //找到选中的节点
                XmlNode xmlSelect = xmlRoot.SelectSingleNode("/school/class/student[.='" + name + "']");
                if (xmlSelect != null)
                {
                    //通过付集结点删除当前选中的节点
                    xmlDom.SelectSingleNode("/school/class[@id='c01']").RemoveChild(xmlSelect);
                    //保存Xml文件
                    xmlDom.Save(@"C:\Users\Administrator\Desktop\test\练习用文件\xmldom.xml");
                    //重新加载
                    LoadXml();
                }
            }
            else
            {
                MessageBox.Show("请先选择一个需要删除的节点");
            }

            //XDocument xDom = XDocument.Load(@"C:\Users\Administrator\Desktop\test\练习用文件\xdom.xml");
            ////查找选择的节点
            //XElement xe = xDom.Root.Elements("student").Single(p => p.Attribute("id").Value == "id");
            ////移除
            //xe.Remove();
            ////保存
            //xDom.Save(@"C:\Users\Administrator\Desktop\test\练习用文件\xdom.xml");
        }

        /// <summary>
        /// 选中改变
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //如果选中
            if (listView1.SelectedItems.Count > 0)
            {
                ListViewItem lvItem = listView1.SelectedItems[0];
                this.txtUpName.Text = lvItem.SubItems[0].Text;
                this.txtUpAge.Text = lvItem.SubItems[1].Text;
                this.txtUpGender.Text = lvItem.SubItems[2].Text;
                this.txtUpAddress.Text = lvItem.SubItems[3].Text;
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/m0_37532448/article/details/81508112