繁体   English   中英

调用UserDeletingRow事件后,行会从gridview中消失,如果我想删除它,则会回答NO

[英]Row disappears from gridview after calling the UserDeletingRow event and answering NO if I want to delete it

我在WinForm应用程序上有一个简单的DataGridView,我在gridview上使用UserDeletingRow事件。 当我突出显示要删除的行时,它当然会提示我是否要真正删除该行,但如果我回答“否”,则该行将从网格中消失。 它不会从数据库中删除,但它会从网格中消失。 如果我退出这个表格,然后再回来,那行又回来了! 它为什么首先消失?

代码当然是:if(result == DialogResult.Yes)然后我执行我的DELETE语句。 该部分适用于摆脱数据库中的行。 但我回答不是!

private void DataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
  if (dataGridView1.CurrentRow.Cells["ID"].Value != DBNull.Value)
  {
    DialogResult result = MessageBox.Show("Are you sure you want to delete speaker -- " + dataGridView1.CurrentRow.Cells["FIRSTNAME"].Value + " " + dataGridView1.CurrentRow.Cells["LASTNAME"].Value + "?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

    if (result == DialogResult.Yes)  
    {  
      using (SQLiteCommand cmd = Business.Business.GetSqliteCommand())  
      {  
        string sql = "DELETE FROM Speakers WHERE ID = " + "'" + dataGridView1.CurrentRow.Cells["ID"].Value + "'";  
        cmd.CommandText = sql;  
        cmd.ExecuteNonQuery();  

        Main_Reload(null, null);  
      }  
    }  
  }  

如果我选择NO,我期待网格不做任何事情!

在IF块中添加else语句

else 
{
    e.Cancel = true;
    Main_Reload(null, null);
}

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridviewrowcanceleventargs?view=netframework-4.8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM