C# DataGridView中實(shí)現(xiàn)勾選存儲(chǔ)數(shù)據(jù)和右鍵刪除數(shù)據(jù)(示例代碼)
DataGridView事件CellContentClick
觸發(fā)dataGridView的CellContentClick事件,并且在事件中調(diào)用Edit 方法。
實(shí)現(xiàn)DataGridView中添加CheckBox后不滿足條件去掉勾選
并且實(shí)現(xiàn)勾選后將綁定數(shù)據(jù)的存入表的動(dòng)作

點(diǎn)擊確定后去掉勾選

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;
}
//取機(jī)種
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增加復(fù)選框列
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);
}
//實(shí)現(xiàn)搜索
private void txtSearch_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != (char)Keys.Return)
return;
ShowEVlues();
editFilter.Focus();
}
//實(shí)現(xiàn)通過流程取站點(diǎn)
private void cboRoute_SelectedIndexChanged(object sender, EventArgs e)
{
if (cboRoute.Text != "")
{
//取站點(diǎn)
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()));
}
}
}
}
//點(diǎn)擊勾選事件后進(jìn)行數(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("機(jī)種、流程、站點(diǎn)不能為空,請(qǐng)檢查!");
//DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"];
// this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"].Value = false;
//將勾選去掉
this.gvDataE.RefreshEdit();
return;
}
//站點(diǎn)代碼
string StationType = ((Metadata)cboStationType.SelectedItem).ID;
//站點(diǎn)描述
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
//取機(jī)種
DataTable ModelDT = fslConn.GetAllModel();
if (ModelDT.Rows.Count > 0)
{
foreach (DataRow item in ModelDT.Rows)
{
cboModel.Items.Add(item[0]);
}
}
fslConn.cs
//取機(jī)種
public DataTable GetAllModel()
{
return fslDAL.GetAllModel();
}
fslDAL.cs
//取機(jī)種
public DataTable GetAllModel()
{
string sql = "SELECT MODEL FROM IMES.M_MODEL";
return utility.Query(sql);
}
儲(chǔ)存數(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ù)
實(shí)現(xiàn)效果

Main.cs
//實(shí)現(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 + " 確認(rèn)刪除嗎?", "提示", 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中實(shí)現(xiàn)勾選存儲(chǔ)數(shù)據(jù)和右鍵刪除數(shù)據(jù)的文章就介紹到這了,更多相關(guān)C# DataGridView右鍵刪除數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#無損高質(zhì)量壓縮圖片實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了C#無損高質(zhì)量壓縮圖片的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
C#使用SQL DataAdapter數(shù)據(jù)適配代碼實(shí)例
今天小編就為大家分享一篇關(guān)于C#使用SQL DataAdapter數(shù)據(jù)適配代碼實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
C#中const,readonly和static關(guān)鍵字的用法介紹
這篇文章介紹了C#中const,readonly和static關(guān)鍵字的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
C#中委托的基礎(chǔ)入門與實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于C#中委托的基礎(chǔ)入門與實(shí)現(xiàn)方法的相關(guān)資料,究竟什么是委托,用最通俗易懂的話來講,你就可以把委托看成是用來執(zhí)行方法(函數(shù))的一個(gè)東西,需要的朋友可以參考下2021-08-08
C#結(jié)合數(shù)據(jù)庫實(shí)現(xiàn)驗(yàn)證識(shí)別ID卡內(nèi)容的方法
這篇文章主要介紹了C#結(jié)合數(shù)據(jù)庫實(shí)現(xiàn)驗(yàn)證識(shí)別ID卡內(nèi)容的方法,非常實(shí)用的功能,需要的朋友可以參考下2014-07-07

