服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

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

2022-11-24 11:05caoguanghui0804 C#

这篇文章主要介绍了C# DataGridView中实现勾选存储数据和右键删除数据的示例代码,通过示例代码给大家展示运行效果图,需要的朋友可以参考下

DataGridView事件CellContentClick

触发dataGridView的CellContentClick事件,并且在事件中调用Edit 方法。
实现DataGridView中添加CheckBox后不满足条件去掉勾选
并且实现勾选后将绑定数据的存入表的动作

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

点击确定后去掉勾选

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

Main.cs

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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();
           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);  
       }
       
 //实现搜索
       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 = 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;
                   //添加权限
                   fslConn.SaveFslPower(gvFunName, gvFunNameDesc, Model,StationType, StationTypeDesc);
               }
           }
       }

ComboBox取值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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);
        }

储存数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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
     //存权限
        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# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 from  IMES.M_STATIONTYPE_PARTSPEC WHERE ID =:1";
            object[] para = new object[] { id };
            return utility.ExecuteSql(sql, para);
        }

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

原文链接:https://blog.csdn.net/caoguanghui0804/article/details/118511536

延伸 · 阅读

精彩推荐
  • C#C#应用ToolStrip控件使用方法

    C#应用ToolStrip控件使用方法

    在本篇文章里小编给大家分享了关于C#应用ToolStrip控件使用方法和技巧,对此有兴趣的朋友们学习下。...

    C#教程网4912022-03-07
  • C#C#添加、读取Word脚注尾注的方法

    C#添加、读取Word脚注尾注的方法

    这篇文章主要为大家详细介绍了C#添加、读取Word脚注尾注的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    E-iceblue10752022-02-24
  • C#C#使用LitJson解析JSON的示例代码

    C#使用LitJson解析JSON的示例代码

    本篇文章主要介绍了C#使用LitJson解析JSON的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    peiandsky6312021-12-22
  • C#C#使用HttpPost请求调用WebService的方法

    C#使用HttpPost请求调用WebService的方法

    这篇文章主要为大家详细介绍了C#使用HttpPost请求调用WebService的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Brambling12042022-01-19
  • C#详解C#把DataTable中数据一次插入数据库的方法

    详解C#把DataTable中数据一次插入数据库的方法

    本篇文章主要介绍了详解C#把DataTable中数据一次插入数据库的方法,具有一定的参考价值,有兴趣的可以了解一下。...

    zhaotianff8692021-12-21
  • C#Unity3D实现NavMesh导航网格寻路

    Unity3D实现NavMesh导航网格寻路

    这篇文章主要为大家详细介绍了Unity3D实现NavMesh导航网格寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Gary_Leong10692022-09-07
  • C#C#位运算以及实例计算详解

    C#位运算以及实例计算详解

    这篇文章主要给大家介绍了关于C#位运算以及实例计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需...

    艾三元11482022-07-28
  • C#关于nancy中的身份验证

    关于nancy中的身份验证

    在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,本文重点介绍token验证,需要的朋友一起看看吧...

    99re7562021-10-26