我在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);
}
}
}
如果我选择“否”,我希望网格什么都不做!
答案 0 :(得分:0)
在您的IF块中添加else语句
else
{
e.Cancel = true;
Main_Reload(null, null);
}