次の方法で共有


方法 : データベースのレコードを削除する

更新 : 2007 年 11 月

データベースからレコードを削除する場合は、TableAdapter.Update メソッドまたは TableAdapter.Delete メソッドを使用します。または、アプリケーションが TableAdapter を使用しない場合は、ExecuteNonQuery などのコマンド オブジェクトを使用してデータベースのレコードを削除します。

アプリケーションがデータセットを使用してデータを格納する場合は、一般に TableAdapter.Update メソッドを使用し、アプリケーションがオブジェクトを使用してデータを格納する場合は、一般に TableAdapter.Delete メソッドを使用します。

TableAdapter に Delete メソッドがない場合は、TableAdapter がストアド プロシージャを使用するように構成されているか、または GenerateDBDirectMethods プロパティが false に設定されています。データセット デザイナで TableAdapter の GenerateDBDirectMethods プロパティを true に設定し、データセットを保存して TableAdapter を再作成してみてください。それでも TableAdapter に Delete メソッドがない場合は、テーブルが個々の行を区別するために十分なスキーマ情報を提供していないことが考えられます (テーブルに主キーが設定されていないなど)。

TableAdapter によるレコードの削除

TableAdapter は、アプリケーションの要件によってデータベースからレコードを削除するための複数の方法を提供します。

アプリケーションがデータセットを使用してデータを格納する場合は、単に DataSet の目的の DataTable からレコードを削除し、その後に TableAdapter.Update メソッドを呼び出すことができます。TableAdapter.Update メソッドは、挿入、更新、および削除されたレコードを含むデータ テーブルの変更を受け取ってデータベースに送ります。

TableAdapter.Update メソッドを使用してデータベースからレコードを削除するには

  • テーブルから DataRow オブジェクトを削除することによって、目的の DataTable からレコードを削除します。詳細については、「方法 : DataTable の行を削除する」を参照してください。DataTable から行を削除した後に、TableAdapter.Update メソッドを呼び出します。更新するデータの量は、DataSet 全体、単一の DataTableDataRow の配列、または単一の 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 メソッドを使用してデータベースからレコードを削除するには

  • 各列の値を Delete メソッドのパラメータとして渡して TableAdapter の Delete メソッドを呼び出します。この例では、Northwind データベースの Region テーブルを使用します。

    ms233823.alert_note(ja-jp,VS.90).gifメモ :

    使用できるインスタンスがない場合は、使用する TableAdapter をインスタンス化します。

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

コマンド オブジェクトによるレコードの削除

コマンド オブジェクトを使用してデータベースからレコードを直接削除する例を次に示します。コマンド オブジェクトによるコマンドとストアド プロシージャの実行の詳細については、「アプリケーションへのデータのフェッチ」を参照してください。

コマンド オブジェクトを使用してデータベースからレコードを削除するには

  • 新しいコマンド オブジェクトを作成し、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();
    

セキュリティ

目的のテーブルからレコードを削除する許可および接続するデータベースに対するアクセス許可が必要です。

参照

処理手順

方法 : データベースに新しいレコードを挿入する

方法 : データベースのレコードを更新する

方法 : オブジェクトからデータベースにデータを保存する

概念

TableAdapter の概要

その他の技術情報

データ アクセスを使用した作業の開始

Visual Studio でのデータへの接続

アプリケーションでデータを受け取る準備

アプリケーションへのデータのフェッチ

Windows アプリケーションのフォームでのデータの表示

アプリケーションでのデータ編集

データの検証

データの保存