C#|C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

DataGridView事件CellContentClick 触发dataGridView的CellContentClick事件,并且在事件中调用Edit 方法。
实现DataGridView中添加CheckBox后不满足条件去掉勾选
并且实现勾选后将绑定数据的存入表的动作
C#|C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)
文章图片

点击确定后去掉勾选
C#|C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)
文章图片

Main.cs

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e){switch (this.tabControl1.SelectedIndex){//case 0:////显示数据//ShowVlues(); //break; case 1:TableDefine.Initial_TableE(); for (int i = 0; i <= TableDefine.tGridField.Length - 1; i++){cboSearch.Items.Add(TableDefine.tGridField[i].sCaption); cboSearchList.Items.Add(TableDefine.tGridField[i].sFieldName); }if (cboSearch.Items.Count > 0){cboSearch.SelectedIndex = 0; }//取机种DataTable ModelDT = fslConn.GetAllModel(); if (ModelDT.Rows.Count > 0){foreach (DataRow item in ModelDT.Rows){cboModel.Items.Add(item[0]); }}//取流程DataTable RouteDT = fslConn.GetAllRoute(); if (RouteDT.Rows.Count > 0){foreach (DataRow item in RouteDT.Rows){cboRoute.Items.Add(item[0]); }}//显示数据ShowEVlues(); break; }}//取数据显示void ShowEVlues(){string sFieldName = string.Empty; string sFieldText = string.Empty; if (cboSearch.SelectedIndex > -1 && txtSearch.Text.Trim() != ""){sFieldName = cboSearchList.Items[cboSearch.SelectedIndex].ToString(); sFieldText = txtSearch.Text.Trim(); }if (string.IsNullOrWhiteSpace(sFieldText))gvDataE.DataSource = fslConn.GetAllFslEName(); elsegvDataE.DataSource = fslConn.GetAllFslEName(sFieldName, sFieldText); //栏位titlefor (int i = 0; i <= gvDataE.Columns.Count - 1; i++){gvDataE.Columns[i].Visible = false; }for (int i = 0; i < TableDefine.tGridField.Length; i++){string sGridField = TableDefine.tGridField[i].sFieldName; if (gvDataE.Columns.Contains(sGridField)){gvDataE.Columns[sGridField].HeaderText = TableDefine.tGridField[i].sCaption; gvDataE.Columns[sGridField].DisplayIndex = i; //栏位显示顺序gvDataE.Columns[sGridField].Visible = true; }}gvDataE.Focus(); //为dgv增加复选框列DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn(); //列显示名称checkbox.HeaderText = "选择"; checkbox.Name = "IsChecked"; checkbox.TrueValue = https://www.it610.com/article/true; checkbox.FalseValue = false; checkbox.DataPropertyName ="IsChecked"; //列宽checkbox.Width = 50; //列大小不改变checkbox.Resizable = DataGridViewTriState.False; //添加的checkbox在dgv第一列this.gvDataE.Columns.Insert(0, checkbox); }//实现搜索private void txtSearch_KeyPress(object sender, KeyPressEventArgs e){if (e.KeyChar != (char)Keys.Return)return; ShowEVlues(); editFilter.Focus(); }//实现通过流程取站点private void cboRoute_SelectedIndexChanged(object sender, EventArgs e){if (cboRoute.Text != ""){//取站点DataTable StationTypeDT = fslConn.GetAllStationType(cboRoute.Text); if (StationTypeDT.Rows.Count > 0){for (int i = 0; i < StationTypeDT.Rows.Count; i++){//cboStationType.Items.Add(item[0]); cboStationType.Items.Add(new Metadata(StationTypeDT.Rows[i][2].ToString(), StationTypeDT.Rows[i][0].ToString(), StationTypeDT.Rows[i][1].ToString())); }}}}//点击勾选事件后进行数据绑定private void gvDataE_CellContentClick(object sender, DataGridViewCellEventArgs e){string Model = cboModel.Text; string Route = cboRoute.Text; if (Model == "" || Route == ""|| cboStationType.Text == ""){MessageBox.Show("机种、流程、站点不能为空,请检查!"); //DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"]; // this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"].Value = https://www.it610.com/article/false; //将勾选去掉this.gvDataE.RefreshEdit(); return; }//站点代码string StationType = ((Metadata)cboStationType.SelectedItem).ID; //站点描述string StationTypeDesc = ((Metadata)cboStationType.SelectedItem).NAMEDESC; if (e.ColumnIndex == 0 && e.RowIndex != -1){//获取控件的值DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"]; Boolean flag = Convert.ToBoolean(checkCell.Value); //KP品名string gvFunName = gvDataE.Rows[e.RowIndex].Cells["MAT_TYPE_CODE"].Value.ToString(); //KP品名描述string gvFunNameDesc = gvDataE.Rows[e.RowIndex].Cells["MAT_TYPE_DESC"].Value.ToString(); if(flag == false){checkCell.Value = https://www.it610.com/article/true; //添加权限fslConn.SaveFslPower(gvFunName, gvFunNameDesc, Model,StationType, StationTypeDesc); }}}

【C#|C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)】ComboBox取值
main.cs //取机种DataTable ModelDT = fslConn.GetAllModel(); if (ModelDT.Rows.Count > 0){foreach (DataRow item in ModelDT.Rows){cboModel.Items.Add(item[0]); }} fslConn.cs //取机种public DataTable GetAllModel(){return fslDAL.GetAllModel(); }fslDAL.cs //取机种public DataTable GetAllModel(){string sql = "SELECT MODEL FROM IMES.M_MODEL"; return utility.Query(sql); }

储存数据
fslConn.cspublic long SaveFslPower(string gvFunName, string gvFunNameDesc, string Model, string StationType, string StationTypeDesc ){return fslDAL.SaveFslPower(gvFunName, gvFunNameDesc, Model, StationType, StationTypeDesc); }fslDAL.cs//存权限public long SaveFslPower(string gvFunName, string gvFunNameDesc, string Model, string StationType, string StationTypeDesc){string id = GetMaxId(); string sql = @"INSERT INTO IMES.M_STATIONTYPE_PARTSPEC(ID,MODEL,STATION_TYPE,STATION_DESC,KP_SPEC,KP_SPEC_DESC,QTY,ENABLED,CREATE_EMPNO,CREATE_TIME,UPDATE_EMPNO)VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11)"; object[] para = new object[] { id, Model, StationType , StationTypeDesc,gvFunName, gvFunNameDesc, "1", "Y", utility.GlobalUserNo,DateTime.Now, utility.GlobalUserNo }; return utility.ExecuteSql(sql, para); }

右键删除数据 实现效果
C#|C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)
文章图片

Main.cs//实现DataGridView栏位右键删除数据private void 删除ToolStripMenuItem_Click(object sender, EventArgs e){if (gvData.Rows.Count == 0 || gvData.CurrentRow == null){return; }string ID = gvData.CurrentRow.Cells["ID"].Value.ToString(); if (MessageBox.Show("ID:" + ID + " 确认删除吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes){//M_STATIONTYPE_PARTSPEC_HT写入历史库fslConn.SaveFslHistoryData(ID); 移除权限fslConn.DeleteFslByIDAndFunc(ID); //显示数据ShowVlues(); }}fslConn.cs //删除权限public long DeleteFslByIDAndFunc(string id){return fslDAL.DeleteFslByIDAndFunc( id); }fslDAL.cs//删除权限public long DeleteFslByIDAndFunc(string id){string sql = @"Delete fromIMES.M_STATIONTYPE_PARTSPEC WHERE ID =:1"; object[] para = new object[] { id }; return utility.ExecuteSql(sql, para); }

到此这篇关于C# DataGridView中实现勾选存储数据和右键删除数据的文章就介绍到这了,更多相关C# DataGridView右键删除数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读