zoukankan      html  css  js  c++  java
  • C#操作xml文档,cuid,dategridview显示数据

    界面




                //所有的数据全部在集合中
                //dgv控件绑定List集合,List集合中有User类的对象,对象里有属性,把属性绑定到没列的数据上
                dgv.DataSource = list;//绑定数据

               姓名,密码,性别,年龄列的DataPropertyName分别对应List集合中对象的Name,Password,Gender,Age属性

    后台代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml.Linq;


    namespace 大项目
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
           
            private void Form1_Load(object sender, EventArgs e)
            {
                //读取所有用户的信息
                LoadUser();
            }


            private void LoadUser()
            {
                List<User> list = new List<User>();//存储对象
                XDocument xdoc=XDocument.Load("haodongxi.xml");
                //获取根元素,遍历该根元素下所有的子元素,并把所有的子元素添加到一个User类型的集合中


                XElement root = xdoc.Root;
                foreach (XElement user in root.Elements())
                {
                    list.Add(new User() {Id=user.Attribute("id").Value,Name = user.Element("name").Value,Password = user.Element("password").Value,Gender =user.Element("gender").Value,Age = user.Element("age").Value});
                }
                //所有的数据全部在集合中
                //dgv控件绑定List集合,List集合中有User类的对象,对象里有属性,把属性绑定到没列的数据上
                dgv.DataSource = list;//绑定数据


                if (dgv.Rows.Count>0)//该控件有行(有数据)
                {
                    dgv.SelectedRows[0].Selected = false;//禁止刚加载第一行就被选中


                }
               // dgv.Columns[0].Visible = false;//隐藏第一列“id”,也可以在设计器中设置id列的Visible属性为false
            }


            private void btnAdd_Click(object sender, EventArgs e)
            {
                //获取姓名,性别,年龄,密码,id
                //所有添加到xml文件
                XDocument xdoc=XDocument.Load("haodongxi.xml");
                XElement root = xdoc.Root;
                //创建子元素
                XElement user=new XElement("user");
                user.SetAttributeValue("id",txtId.Text.Trim());//id
                user.SetElementValue("name",txtName.Text);//姓名
                user.SetElementValue("password",txtPwd.Text);//密码
               string gender= rdoMan.Checked?"男":"女";
                gender = rdoWoman.Checked ? "女" : "男";
                user.SetElementValue("gender",gender);//性别
                user.SetElementValue("age",txtAge.Text);


                //把子元素添加到根元素中
                root.Add(user);

                //保存
                xdoc.Save("haodongxi.xml");
                //刷新
                LoadUser();

            }


            //删除
            private void tsmiDelete_Click(object sender, EventArgs e)
            {
                //判断是否有选中的行
                if (dgv.SelectedRows.Count > 0)//有选中的
                {
                    //获取选中行的id,获取的是选中的第一行中的第一个单元格中的值
                    string id= dgv.SelectedRows[0].Cells[0].Value.ToString();
                    //根据id去xml文件中查找user标签(id为当前获取的id)
                    XDocument xdoc=XDocument.Load("haodongxi.xml");
                    XElement root = xdoc.Root;
                    //根据id的值去根元素下找所有的user标签,条件就是:id的值和user标签中id的值如果一样则返回当前的user标签
                    XElement ele= root.Elements("user").Where(x => x.Attribute("id").Value == id).Single();
                    ele.Remove();//删除选中的节点


                    MessageBox.Show("操作成功");
                    xdoc.Save("haodongxi.xml");
                    LoadUser();
                }
                else
                {
                    MessageBox.Show("请先选中一行");
                }
                //没有
            }


            private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                //单击单元格时发生
                txtUId.Text = dgv.SelectedRows[0].Cells[0].Value.ToString();//id的值
                txtUName.Text = dgv.SelectedRows[0].Cells[1].Value.ToString();//姓名
                txtUPwd.Text = dgv.SelectedRows[0].Cells[2].Value.ToString();//密码
                txtUAge.Text = dgv.SelectedRows[0].Cells[4].Value.ToString();//年龄


                //User属性的声明和datagridview的绑定还是有一定关系的,尽量顺序一样
                string gender = dgv.SelectedRows[0].Cells[3].Value.ToString();//性别
                rdoUMan.Checked = gender == "男" ? true : false;
                rdoUWoman.Checked=gender == "女" ? true : false;
            }


            private void btnUpdate_Click(object sender, EventArgs e)
            {
                if (dgv.SelectedRows.Count > 0)
                {
                    //读取xml文件,获取根元素,在根元素中查找id是什么的user标签
                    XDocument xdoc = XDocument.Load("haodongxi.xml");
                    //获取根元素
                    XElement root = xdoc.Root;


                    XElement xele = root.Elements("user").Where(x => x.Attribute("id").Value == txtUId.Text).Single();
                    xele.SetElementValue("name", txtUName.Text);
                    xele.SetElementValue("age", txtUAge.Text);
                    xele.SetElementValue("password", txtUPwd.Text);
                    string gender = rdoUMan.Checked ? "男" : "女";
                    gender = rdoUWoman.Checked ? "女" : "男";
                    xele.SetElementValue("gender", gender);
                    //保存
                    xdoc.Save("haodongxi.xml");
                    MessageBox.Show("修改成功");
                    LoadUser();
                }
                else
                {
                    MessageBox.Show("请先选中要修改的行");
                }


            }
        }
    }

  • 相关阅读:
    Python Install for windows X64
    CentOS 7 Install Gitlab CE
    centos 7安装vmtools时提示The path "" is not a valid path to the xxx kernel headers.
    Jenkins install
    gradle 编译 No such property: sonatypeUsername错误解决
    Hololens 开发环境配置(转)
    Krapo 2
    Krapno 1
    dubbo 常见错误
    groupby
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/5193689.html
Copyright © 2011-2022 走看看