C# DataGridView中實現(xiàn)勾選存儲數(shù)據(jù)和右鍵刪除數(shù)據(jù)(示例代碼)
DataGridView事件CellContentClick
觸發(fā)dataGridView的CellContentClick事件,并且在事件中調(diào)用Edit 方法。
實現(xiàn)DataGridView中添加CheckBox后不滿足條件去掉勾選
并且實現(xiàn)勾選后將綁定數(shù)據(jù)的存入表的動作
點擊確定后去掉勾選
Main.cs
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { switch (this.tabControl1.SelectedIndex) { //case 0: // //顯示數(shù)據(jù) // 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]); } } //顯示數(shù)據(jù) ShowEVlues(); break; } } //取數(shù)據(jù)顯示 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(); else gvDataE.DataSource = fslConn.GetAllFslEName(sFieldName, sFieldText); //欄位title for (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 = true; checkbox.FalseValue = false; checkbox.DataPropertyName = "IsChecked"; //列寬 checkbox.Width = 50; //列大小不改變 checkbox.Resizable = DataGridViewTriState.False; //添加的checkbox在dgv第一列 this.gvDataE.Columns.Insert(0, checkbox); } //實現(xiàn)搜索 private void txtSearch_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != (char)Keys.Return) return; ShowEVlues(); editFilter.Focus(); } //實現(xiàn)通過流程取站點 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())); } } } } //點擊勾選事件后進行數(shù)據(jù)綁定 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 = 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 = true; //添加權(quán)限 fslConn.SaveFslPower(gvFunName, gvFunNameDesc, Model,StationType, StationTypeDesc); } } }
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); }
儲存數(shù)據(jù)
fslConn.cs public long SaveFslPower(string gvFunName, string gvFunNameDesc, string Model, string StationType, string StationTypeDesc ) { return fslDAL.SaveFslPower(gvFunName, gvFunNameDesc, Model, StationType, StationTypeDesc); } fslDAL.cs //存權(quán)限 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); }
右鍵刪除數(shù)據(jù)
實現(xiàn)效果
Main.cs //實現(xiàn)DataGridView欄位右鍵刪除數(shù)據(jù) 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); 移除權(quán)限 fslConn.DeleteFslByIDAndFunc(ID); //顯示數(shù)據(jù) ShowVlues(); } } fslConn.cs //刪除權(quán)限 public long DeleteFslByIDAndFunc(string id) { return fslDAL.DeleteFslByIDAndFunc( id); } fslDAL.cs //刪除權(quán)限 public long DeleteFslByIDAndFunc(string id) { string sql = @"Delete from IMES.M_STATIONTYPE_PARTSPEC WHERE ID =:1"; object[] para = new object[] { id }; return utility.ExecuteSql(sql, para); }
到此這篇關(guān)于C# DataGridView中實現(xiàn)勾選存儲數(shù)據(jù)和右鍵刪除數(shù)據(jù)的文章就介紹到這了,更多相關(guān)C# DataGridView右鍵刪除數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用SQL DataAdapter數(shù)據(jù)適配代碼實例
今天小編就為大家分享一篇關(guān)于C#使用SQL DataAdapter數(shù)據(jù)適配代碼實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10C#中const,readonly和static關(guān)鍵字的用法介紹
這篇文章介紹了C#中const,readonly和static關(guān)鍵字的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08C#結(jié)合數(shù)據(jù)庫實現(xiàn)驗證識別ID卡內(nèi)容的方法
這篇文章主要介紹了C#結(jié)合數(shù)據(jù)庫實現(xiàn)驗證識別ID卡內(nèi)容的方法,非常實用的功能,需要的朋友可以參考下2014-07-07