次の方法で共有


.NET Framework アプリケーションで TableAdapter を使用してデータベースに直接アクセスする

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。

TableAdapter は、 InsertCommandUpdateCommand、および DeleteCommandに加えて、データベースに対して直接実行できるメソッドを使用して作成されます。 これらのメソッド (TableAdapter.InsertTableAdapter.UpdateTableAdapter.Delete) を呼び出して、データベース内のデータを直接操作できます。

これらのダイレクト メソッドを作成しない場合は、[プロパティ] ウィンドウで TableAdapter の GenerateDbDirectMethods プロパティをfalseに設定します。 TableAdapter のメイン クエリに加えて TableAdapter に追加されたクエリは、これらの DbDirect メソッドを生成しないスタンドアロン クエリです。

コマンドをデータベースに直接送信する

実行しようとしているタスクを実行する TableAdapter DbDirect メソッドを呼び出します。

新しいレコードをデータベースに直接挿入するには

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

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

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Insert(5, "NorthWestern");
    

データベース内のレコードを直接更新するには

  • TableAdapter の Update メソッドを呼び出し、各列の新しい値と元の値をパラメーターとして渡します。

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

    NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = 
        new NorthwindDataSetTableAdapters.RegionTableAdapter();
    
    regionTableAdapter.Update(1, "East", 1, "Eastern");
    

データベースからレコードを直接削除するには

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

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

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