DataGridView绑定数据删除数据

Posted palebluestarrysky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataGridView绑定数据删除数据相关的知识,希望对你有一定的参考价值。

定义学生类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GridViewDemo

    public class Student
    
        //姓名
        private string Name;
        public string name
        
            get
            
                return Name;
            
            set
            
                Name = value;
            
        
        //得分
        private double Score;
        public double score
        
            get
            
                return Score;
            
            set
            
                Score = value;
            
        
    

代码实现:

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

namespace GridViewDemo

    public partial class Form1 : Form
    
        //定义全局对象
        List<Student> studenList = new List<Student>();
        DataTable dt = new DataTable();

        public Form1()
        
            InitializeComponent();
        

        #region 创建集合类实现建立并存放20个学生的方法,类似于创建班级类。
        private List<Student> GeneraStudent()
        
            List<Student> studentLists = new List<Student>() ;
            //真正去创建20个学生
            for (int i=1; i<21;i++)
            
                Student student = new Student();
                student.name = "student"+i;
                Random rad = new Random();
                System.Threading.Thread.Sleep(100);
                student.score =Convert.ToDouble( Convert.ToDouble(rad.Next(101) + (0.5 * (i % 2))).ToString("000.0"));
                studentLists.Add(student);
            
            return studentLists;
        
        #endregion

        #region 绑定到列表控件
        private void bangdingstudentOnGridView(int flag)
        
            if (flag == 0)
                                      
            //表格清空初始化
            this.dgv_Students.Rows.Clear();
            this.dgv_Students.Columns.Clear();

            //实例化表格
            dt = new DataTable();

            //实例化每列 并初始化列名称和列数据类型
            DataColumn dc = new DataColumn();
            dc.ColumnName = "Name";
            //dc.DataType = Type.GetType("string");
            dt.Columns.Add(dc);

            DataColumn dcvalue = new DataColumn();
            dcvalue.ColumnName = "Score";
            //dcvalue.DataType = Type.GetType("int");
            dt.Columns.Add(dcvalue);

            //调用创建学生方法,创建20个学生。
            studenList = this.GeneraStudent();
            //把创建的20个学生用循环方法加载到每行
            foreach (Student student in studenList )
            
                //实例化表格行 并加载创建出的学生信息
                DataRow dr = dt.NewRow();
                dr["Name"] = student.name;
                dr["Score"] = student.score;
                dt.Rows.Add(dr);
            
            //把数据绑定到表格控件数据源
            this.dgv_Students.DataSource = dt;
                
            DataGridViewLinkColumn dlc = new DataGridViewLinkColumn();
            dlc.Name = "Delete";
            dlc.Text = "Delete";
            this.dgv_Students.Columns.AddRange(new DataGridViewColumn[]  dlc );

            foreach (DataGridViewRow dr in this.dgv_Students.Rows)
              
                 dr.Cells[2].Value = "Delete";
              
            
            else
            
                ////表格清空初始化
                //this.dgv_Students.Rows.Clear();
                //this.dgv_Students.Columns.Clear();
                dt.Rows.Clear();

                //实例化表格
                //DataTable dt = new DataTable();

                ////实例化每列 并初始化列名称和列数据类型
                //DataColumn dc = new DataColumn();
                //dc.ColumnName = "Name";
                ////dc.DataType = Type.GetType("string");
                //dt.Columns.Add(dc);

                //DataColumn dcvalue = new DataColumn();
                //dcvalue.ColumnName = "Score";
                ////dcvalue.DataType = Type.GetType("int");
                //dt.Columns.Add(dcvalue);

                //把创建的20个学生用循环方法加载到每行
                foreach (Student student in studenList)
                
                    //实例化表格行 并加载创建出的学生信息
                    DataRow dr = dt.NewRow();
                    dr["Name"] = student.name;
                    dr["Score"] = student.score;
                    dt.Rows.Add(dr);
                
                //把数据绑定到表格控件数据源
                this.dgv_Students.DataSource = dt;

                foreach (DataGridViewRow dr in this.dgv_Students.Rows)
                
                    dr.Cells[2].Value = "Delete";
                
            

        
        #endregion



        private void Form1_Load(object sender, EventArgs e)
        
            this.bangdingstudentOnGridView(0);
        

        private void dgv_Students_CellContentClick(object sender, DataGridViewCellEventArgs e)
        
            if (e.ColumnIndex  == 2)
            
                //获取选中行的数据ID
                string strStudentName = this.dgv_Students.Rows[e.RowIndex].Cells[0].Value.ToString();
                foreach (Student st in studenList )
                
                    if(st.name.Equals(strStudentName))
                    
                        //删除
                        studenList.Remove(st);
                        this.bangdingstudentOnGridView(1);
                        return;
                    
                
            
        
    

 

以上是关于DataGridView绑定数据删除数据的主要内容,如果未能解决你的问题,请参考以下文章

怎么删除datagridview中选中的行啊

c# 在datagridview 中 用鼠标选中一行删除并保存到数据库怎么实现?

C# winform DataGridView 如何实现删除 更新 手动绑定数据源(不是在控件里指定数据源) 求大神 在线等

C#的dataGridView控件里面已经有数据了,怎么让它自动统计总行数?[自动统计:没有点击等任何事件时]

c#datagridview删除选中行,并删除SQL数据库中对应行

DataGridView绑定数据源