次の方法で共有


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

Note

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

InsertCommandUpdateCommandDeleteCommand に加えて、データベースに対して直接実行できるメソッドで、TableAdapter が作成されます。 これらのメソッド (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 メソッドを呼び出し、各列の新しい値と元の値をパラメーターとして渡します。

    Note

    使用可能なインスタンスがない場合は、使用する 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");