簡體   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