private void dgvStudentList_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != -1) { //获取行数据 DataRow dr = (dgvStudentList.Rows[e.RowIndex].DataBoundItem as DataRowView).Row; //获取点击的单元格 DataGridViewCell cell = dgvStudentList.Rows[e.RowIndex].Cells[e.ColumnIndex]; if (cell is DataGridViewLinkCell && cell.FormattedValue.ToString() == "Update") { //修改操作 打开修改页,传studentId 1.构造函数 2.tag 3.开放变量 reLoad = LoadAllStudentList;// 赋值委托 int stuId = (int)dr["StudentId"]; FrmEditStudent frmEdit = new FrmEditStudent(); frmEdit.Tag = new TagObject() { EditId = stuId, ReLoad = reLoad }; frmEdit.MdiParent = this.MdiParent; frmEdit.Show();//顶级窗体 } else if (cell is DataGridViewLinkCell && cell.FormattedValue.ToString() == "Delete") { if (MessageBox.Show("You absolutely want to DELETE this student?", "DeleteTip", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { int stuId = (int)dr["StudentId"]; //删除操作 //加删除 string sqlDel0 = "update StudentInfo set IsDeleted = 1 where StudentId = @StudentId "; SqlParameter paraDel0 = new SqlParameter("@StudentId", stuId); int count = SqlHelper.ExecuteNonQuery(sqlDel0, paraDel0); if (count > 0) { MessageBox.Show("Delete student SUCCESSFUL!", "DeleteTip", MessageBoxButtons.OK, MessageBoxIcon.Information); //DataGrideView还未刷新 DataTable dtStudents = (DataTable)dgvStudentList.DataSource; //dgvStudentList.DataSource = null; dtStudents.Rows.Remove(dr); dgvStudentList.DataSource = dtStudents; } else { MessageBox.Show("Fail to Delete!", "DeleteTip", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } //真删除 } } }
/// <summary> /// 修改或删除功能实现 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dgvStudents_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex != -1) { DataRow dr = (dgvStudents.Rows[e.RowIndex].DataBoundItem as DataRowView).Row; //获取点击的单元格 DataGridViewCell cell = dgvStudents.Rows[e.RowIndex].Cells[e.ColumnIndex]; //判断是修改还是删除 if (cell is DataGridViewLinkCell && cell.FormattedValue.ToString() == "修改") { //修改操作,打开修改页面,并把StudentId传过去 //传值:1.构造函数 2.Tag属性(推荐) 3.公共参数 reLoad = LoadAllStudentList;//赋值给委托 int stuId = (int)dr["StudentId"]; //1.构造函数 FrmEditStudent frmEditStudent = new FrmEditStudent(stuId); //2.tag属性 frmEditStudent.Tag = new TagObject() { EditId = stuId, Reload = reLoad }; //3.公共参数 frmEditStudent.pubStuId = stuId; frmEditStudent.MdiParent = this.MdiParent; frmEditStudent.Show(); } else if (cell is DataGridViewLinkCell && cell.FormattedValue.ToString() == "删除") { int stuId = int.Parse(dr["StudentId"].ToString()); string stuName = dr["StudentName"].ToString(); //删除操作 if (MessageBox.Show($"确定删除学生:{stuName} 的信息吗?", "删除学生提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //假删除 isdeleted 0--->1 string sqlDel0 = "update StudentInfo set IsDeleted=1 where StudentId=@StudentId"; SqlParameter para = new SqlParameter("@StudentId", stuId); int count = SqlHelper.ExecuteNoQuery(sqlDel0, para); if (count > 0) { MessageBox.Show("该学生信息删除成功", "删除学生信息", MessageBoxButtons.OK, MessageBoxIcon.Information); //手动刷新datagridview DataTable dtStudents = (DataTable)dgvStudents.DataSource; dgvStudents.DataSource = null; dtStudents.Rows.Remove(dr); dgvStudents.DataSource = dtStudents; } else { MessageBox.Show("学生信息删除失败", "删除提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //真删除 //string sqlDel0 = "delete StudentInfo where StudentId=@StudentId"; //SqlParameter para = new SqlParameter("@StudentId", stuId); //int count = SqlHelper.ExecuteNoQuery(sqlDel0, para); //if (count > 0) //{ // MessageBox.Show("该学生信息删除成功", "删除学生信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // //手动刷新datagridview // DataTable dtStudents = (DataTable)dgvStudents.DataSource; // dgvStudents.DataSource = null; // dtStudents.Rows.Remove(dr); // dgvStudents.DataSource = dtStudents; //} //else //{ // MessageBox.Show("学生信息删除失败", "删除提示", MessageBoxButtons.OK, MessageBoxIcon.Error); // return; //} } } } }