【问题标题】:C# - Deleting items from DataGridView with button in rowC# - 使用行中的按钮从 DataGridView 中删除项目
【发布时间】:2017-06-13 09:52:46
【问题描述】:

我正在创建一个应用程序,并且我有一部分在表格中包含数据(datagridview)。在此表中,我还在每一行上都有一个按钮。

我的目标是单击一个按钮,以从表和应用程序将获取信息的数据库中删除单击该按钮的行。

我的代码如下:

public void update_tabelas()
{
    string queryprodutos = "SELECT * FROM produtos;";
    DataTable dtprodutos = new DataTable();
    MySqlCommand cmdprod = new MySqlCommand(queryprodutos, mConn);
    MySqlDataAdapter daprod = new MySqlDataAdapter(cmdprod);
    mConn.Open();
    daprod.Fill(dtprodutos);
    mConn.Close();
    this.tabelaprodutos.DataSource = dtprodutos;
    DataGridViewColumn col = new DataGridViewButtonColumn();
    col.Name = "Delete";
    col.DataPropertyName = "Delete";
    col.ReadOnly = true;
    this.tabelaprodutos.Columns.Add(col);
}

此代码将填充表格并在每一行添加删除按钮。

现在我不知道如何从表和数据库中删除这些数据。

感谢任何建议和帮助。

【问题讨论】:

  • 您应该从数据库中删除该行,然后重置网格数据源。您可以使用网格CellMouseClick 事件来查看是否单击了“删除”按钮列,如果是,您将知道要删除哪一行。你有没有尝试过?
  • 不,我还没试过。
  • 嗯...保持简单...首先设置CellMouseClick事件并让它调用一个方法,该方法显示一个简单的消息框以显示单击了哪一行。完成该工作后,添加代码以从数据库中删除该行,然后将数据源重新设置为网格。尝试一些东西,如果它不起作用,请回到这里。
  • @JohnG 我应该把这个事件的代码放在哪里?在加载形式或其他任何地方?而且我不知道如何创建这个事件。
  • 请参阅 How to handle click event in Button Column in Datagridview 以设置 CellContentClick 事件。在这种情况下,调用您的 SQL 删除查询并根据需要进行更新。

标签: c# mysql datagridview


【解决方案1】:

从删除按钮单击事件/单元格单击事件获取行索引并将其从数据库中删除并重新加载 datagridview(运行 update_tabelas() 方法)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多