2013-12-08 73 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

如果你的數據庫中有與我勸你不要刪除,但添加呼籲爲例領域的其他表關係表「已刪除」所以你會跟蹤被刪除的文件。

因爲刪除字段可能導致數據庫中的不穩定性,如果刪除字段與其他表有關係。

相關問題