我是新的C#和MS Access用户,我正在制作汽车保险计划。尝试删除用户时,会插入ID并正常执行删除过程。但是,如果输入了不存在的ID,程序仍会显示“已删除记录”。这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
if (MessageBox.Show("Are you sure you want to delete?", "WARNING!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
con.Open();
cmd.Connection = con;
string q = "delete from Users where ID=" + numericUpDown1.Value.ToString();
deletedata(q);
cmd.ExecuteNonQuery();
MessageBox.Show("Record Deleted");
numericUpDown1.Value = 0;
con.Close();
}
else
Close();
}
catch (Exception ex)
{
con.Close();
MessageBox.Show(ex.Message);
}
}
private void deletedata(String q)
{
try
{
cmd.CommandText = q;
}
catch (Exception ex)
{
con.Close();
MessageBox.Show(ex.Message.ToString());
}
}
答案 0 :(得分:4)
问题:您正在显示Records Deleted
消息,而不检查查询执行status
。
解决方案: ExecuteNonQuery()
会在执行时返回int
值来表示行total number
updated/deleted/inserted
,因此您可以显示success
}仅当返回值为greater than
0时才显示消息,否则显示failure/error
消息。
试试这个:
int rowsDeleted=cmd.ExecuteNonQuery();
if(rowsDeleted>0)
MessageBox.Show("Record Deleted");
else
MessageBox.Show("No Record to Delete");
答案 1 :(得分:0)
如果您的数据库中有与其他表有关的表,我建议您不要删除,但添加一个名为exemple“deleted”的字段,以便跟踪已删除的文件。
如果删除字段与其他表有关系,则删除字段会导致数据库不稳定。