共用方式為


HOW TO:刪除資料庫中的資料錄

更新:2007 年 11 月

若要刪除資料庫中的資料錄,請使用 TableAdapter.Update 方法或 TableAdapter.Delete 方法。或者,如果您的應用程式並未使用 TableAdapter,您就可以使用命令物件來刪除資料庫中的資料錄 (例如,ExecuteNonQuery)。

當您的應用程式使用資料集儲存資料時,通常會使用 TableAdapter.Update 方法,而當您的應用程式使用物件儲存資料時,則通常會使用 TableAdapter.Delete 方法。

如果 TableAdapter 並沒有任何 Delete 方法,就是表示此 TableAdapter 是設定成使用預存程序,或者其 GenerateDBDirectMethods 屬性設定為 false。請嘗試從 DataSet 設計工具之內,將 TableAdapter 的 GenerateDBDirectMethods 屬性設定為 true,然後儲存資料集以重新產生 TableAdapter。如果 TableAdapter 仍然沒有 Delete 方法,則此資料表可能無法提供足夠的結構描述資訊,以區別個別的資料列 (例如,資料表上沒有設定任何主索引鍵)。

使用 TableAdapter 刪除資料錄

TableAdapter 會根據應用程式的需求,提供不同的方式來刪除資料庫中的資料錄。

如果您的應用程式使用資料集儲存資料,您就只要在 DataSet 中刪除所需 DataTable 的資料錄,然後呼叫 TableAdapter.Update 方法即可。TableAdapter.Update 方法會採用資料表中的任何變更,並將這些變更傳送至資料庫中 (包括已插入、已更新和已刪除的資料錄)。

若要使用 TableAdapter.Update 方法刪除資料庫中的資料錄

  • 從所需的 DataTable 刪除資料錄,方法是從資料表刪除 DataRow 物件。如需詳細資訊,請參閱 HOW TO:刪除 DataTable 中的資料列。從 DataTable 刪除資料列之後,請呼叫 TableAdapter.Update 方法。您可以傳入整個 DataSetDataTableDataRow 的陣列,或是單一 DataRow,藉以控制要更新的資料量。下列程式碼將示範如何從 DataTable 刪除資料錄,然後呼叫 TableAdapter.Update 方法,傳送變更並刪除資料庫中的資料列 (此範例使用 Northwind 資料庫的 Region 資料表)。

    ' Locate the row to delete.
    Dim oldRegionRow As NorthwindDataSet.RegionRow
    oldRegionRow = NorthwindDataSet._Region.FindByRegionID(5)
    
    ' Delete the row from the dataset
    oldRegionRow.Delete()
    
    ' Delete the row from the database
    Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region)
    
    // Locate the row to delete.
    NorthwindDataSet.RegionRow oldRegionRow;
    oldRegionRow = northwindDataSet.Region.FindByRegionID(5);
    
    // Delete the row from the dataset
    oldRegionRow.Delete();
    
    // Delete the row from the database
    this.regionTableAdapter.Update(this.northwindDataSet.Region);
    

如果您的應用程式會使用物件在應用程式中儲存資料,您就可以使用 TableAdapter 的 DBDirect 方法,直接從資料庫刪除資料。當您呼叫 Delete 方法時,就會根據傳入的參數值,從資料庫移除資料錄。

若要使用 TableAdapter.Delete 方法刪除資料庫中的資料錄

  • 請呼叫 TableAdapter 的 Delete 方法,並傳入每個資料行的值做為 Delete 方法的參數 (此範例使用 Northwind 資料庫的 Region 資料表)。

    注意事項:

    如果您沒有可用的執行個體,請針對您想使用的 TableAdapter 執行個體化。

    Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter
    
    regionTableAdapter.Delete(5, "NorthWestern")
    
    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Delete(5, "NorthWestern");
    

使用命令物件刪除資料錄

下列範例會使用命令物件,直接從資料庫刪除資料錄。如需使用命令物件來執行命令和預存程序 (Stored Procedure) 的詳細資訊,請參閱將資料擷取至您的應用程式中

若要使用命令物件刪除資料庫中的資料錄

  • 建立新的命令物件,然後設定其 Connection、CommandType 和 CommandText 屬性 (此範例使用 Northwind 資料庫的 Region 資料表)。

    Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING")
    
    Dim cmd As New System.Data.SqlClient.SqlCommand
    cmd.CommandType = System.Data.CommandType.Text
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'"
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    cmd.ExecuteNonQuery()
    sqlConnection1.Close()
    
    System.Data.SqlClient.SqlConnection sqlConnection1 = 
        new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING ");
    
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = "DELETE Region WHERE RegionID = 5 AND RegionDescription = 'NorthWestern'";
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    cmd.ExecuteNonQuery();
    sqlConnection1.Close();
    

安全性

您必須擁有嘗試連接之資料庫的存取權,以及從所需資料表刪除資料錄的使用權限。

請參閱

工作

HOW TO:在資料庫中插入新的資料錄

HOW TO:更新資料庫中的資料錄

HOW TO:從物件中將資料儲存至資料庫

概念

TableAdapter 概觀

其他資源

資料存取使用者入門

連接至 Visual Studio 中的資料

準備您的應用程式以接收資料

將資料擷取至您的應用程式中

顯示 Windows 應用程式之表單上的資料

在您的應用程式中編輯資料

驗證資料

儲存資料