C#-查询数据新增一列删除按钮
实现:
给查询出来的数据添加一列"删除按钮(delete Button)"
查询接口新增deleteButton:
// 创建一个按钮列 DataGridViewButtonColumn btnColumn = new DataGridViewButtonColumn(); btnColumn.Name = "deleteButton"; btnColumn.Text = "删除"; btnColumn.UseColumnTextForButtonValue = true; // 将按钮列添加到DataGridView中 dataGridView1.Columns.Add(btnColumn); // 为CellClick事件添加事件处理程序 dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);
dataGridView1_CellClick监听事件:
// 实现点击事件的事件处理程序 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { // 确保点击的是删除按钮列 if (e.ColumnIndex == dataGridView1.Columns["deleteButton"].Index && e.RowIndex >= 0) { try { LogHelper.savelogs("=================删除开始================", "Form1"); executePostgre.deleteMrl(this.dataGridView1.SelectedRows[0].Cells["sysid"].Value.ToString(), "Form1"); showdataGridView(""); } catch (Exception ex) { LogHelper.savelogs("删除报错:" + ex.ToString(), "Form1"); } finally { LogHelper.savelogs("=================删除结束================", "Form1"); } // 执行删除操作,这里只是打印出行号,实际应用中需要删除对应行 int rowIndex = e.RowIndex; Console.WriteLine("删除行:" + rowIndex.ToString()); // 可以在这里添加删除行的代码,例如: } }
deleteMrl实现逻辑删除:
internal void deleteMrl(string sysid, string logname) { try { string sql = $"update test_materiel set is_delete=1 where sysid='{sysid}' "; sqp.updateBySql(sql, logname); LogHelper.savelogs("{sql}:" + "[ExecutePostgreSql]——deleteMrl:" + sql, logname); } catch (Exception ex) { LogHelper.savelogs("{sqlMessage}:" + "[ExecutePostgreSql]——deleteMrl:" + ex, logname); } }