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绑定数据删除数据的主要内容,如果未能解决你的问题,请参考以下文章
c# 在datagridview 中 用鼠标选中一行删除并保存到数据库怎么实现?
C# winform DataGridView 如何实现删除 更新 手动绑定数据源(不是在控件里指定数据源) 求大神 在线等
C#的dataGridView控件里面已经有数据了,怎么让它自动统计总行数?[自动统计:没有点击等任何事件时]