2013-12-08 70 views
-1

我是一名新的C#和MS Access用户,我正在制作汽车保险计划。当试图删除用户时,插入ID并且删除过程正常进行。但是,如果输入不存在的ID,程序仍然会说“记录已删除”。这是我的代码:在删除C#和MS Access中的记录之前检查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()); 

     } 

    } 

回答

4

问题:你不检查查询执行status显示Records Deleted消息。

解决方案:当被执行时ExecuteNonQuery()返回int值来表示的行updated/deleted/insertedtotal number,这样就可以显示success消息只有当返回值为greater than 0否则显示failure/error消息。

试试这个:

 int rowsDeleted=cmd.ExecuteNonQuery(); 
     if(rowsDeleted>0) 
      MessageBox.Show("Record Deleted"); 
     else 
      MessageBox.Show("No Record to Delete"); 
+0

您的回答总是给我:记录已删除,在这两种情况下 – XenonDragon

+0

@ user3080796:表示它正在删除记录,尝试给出非现有的ID进行验证。 –

+0

对不起,我的错误,它总是说:没有记录要删除 – XenonDragon

0

如果你的数据库中有与我劝你不要删除,但添加呼吁为例领域的其他表关系表“已删除”所以你会跟踪被删除的文件。

因为删除字段可能导致数据库中的不稳定性,如果删除字段与其他表有关系。

相关问题