[英]How to prevent datagridview from firing UserDeletingRow-event for every selected row?
[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.