簡體   English   中英

從Access數據庫中刪除不存在的記錄

[英]Deleting a non-existent record from an Access database

當發現特定的字符串(實體)時,我使用下面的代碼刪除表中的一行。 它可以正常工作,但是如果數據庫中不存在“實體”,它將失敗。

using (OleDbConnection thisConnection = new OleDbConnection(connectionname))
{
    string deletequery = " DELETE FROM SFModelOutputVariables WHERE [Entity] = '" + ENTITY + "'";  
    OleDbCommand myAccessCommandDelete = new OleDbCommand(deletequery, thisConnection);
    try
    {
        thisConnection.Open();
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.Message.ToString() + "\n" + "-Error found while " + "connecting to Access Database");
        return;
    }

    myAccessCommandDelete.ExecuteNonQuery();
    thisConnection.Close();
}

我收到一行myAccessCommandDelete.ExecuteNonQuery();的錯誤myAccessCommandDelete.ExecuteNonQuery(); 表中不存在選定實體的數據時。

您需要檢查實體是否存在。 如果實體存在但不存在,則運行刪除操作,可能會向用戶返回404或顯示適當的消息。

    using (OleDbConnection thisConnection = new OleDbConnection(connectionname))
    {

 string cmdStr = "Select count(*) from SFModelOutputVariables WHERE [Entity] = '" + ENTITY + "'"; 

 OleDbCommand cmd = new      OleDbCommand(cmdStr, thisConnection);

   int count = (int)cmd.ExecuteScalar();

   if(count == 0)
   {
         MessageBox.Show("Sorry no entity was found :-(");
            return;
   }

   // write your code for removing things here....
 }

您可以使用executescalar方法,它給出表的行數。 如果其> 0,則可以執行刪除操作。

MSDN ExecuteScalar方法示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM