次の方法で共有


SqlDataAdapter クラス

定義

データ コマンドのセットと、DataSet の格納および SQL Server データベースの更新に使用されるデータベース接続を表します。 このクラスは継承できません。

public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable, System::Data::IDataAdapter, System::Data::IDbDataAdapter
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public ref class SqlDataAdapter sealed : System::Data::Common::DbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable, System.Data.IDataAdapter, System.Data.IDbDataAdapter
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
public sealed class SqlDataAdapter : System.Data.Common.DbDataAdapter
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDbDataAdapter
    interface IDataAdapter
    interface ICloneable
type SqlDataAdapter = class
    inherit DbDataAdapter
    interface IDataAdapter
    interface IDbDataAdapter
    interface ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable, IDataAdapter, IDbDataAdapter
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
Implements ICloneable
Public NotInheritable Class SqlDataAdapter
Inherits DbDataAdapter
継承
SqlDataAdapter
実装

次の例では、 、SqlDataAdapterSqlConnectionSqlCommand使用してデータベースからレコードを選択し、 にDataSet選択した行を設定します。 その後、塗りつぶし DataSet が返されます。 これを実現するために、メソッドには、初期化 DataSetされた 、接続文字列、および Transact-SQL SELECT ステートメントであるクエリ文字列が渡されます。

using Microsoft.Data.SqlClient;
using System.Xml;
using System.Data.Common;
using System.Windows.Forms;

public class Form1 : Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    private static DataSet SelectRows(DataSet dataset,
        string connectionString, string queryString)
    {
        using (SqlConnection connection =
            new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = new SqlCommand(
                queryString, connection);
            adapter.Fill(dataset);
            return dataset;
        }
    }
}

注釈

SqlDataAdapter、 と SQL Serverの間DataSetのブリッジとして機能し、データの取得と保存を行います。 はSqlDataAdapter、 のデータをデータ ソース内のDataSetデータと一致するように変更する マッピングFillによってこのブリッジを提供しUpdate、 では、データ ソースに対して適切な Transact-SQL ステートメントを使用して、 内のデータと一致するようにデータ ソース内DataSetのデータを変更します。 更新は行ごとに実行されます。 挿入、変更、および削除された行ごとに、 メソッドによって、 Update 行に対して実行された変更の種類 (Insert、、 Updateまたは Delete) が決定されます。 変更の種類に応じて、または Delete コマンド テンプレートがInsertUpdate実行され、変更された行がデータ ソースに反映されます。 が SqlDataAdapterDataSet塗りつぶすと、返されたデータに必要なテーブルと列がまだ存在しない場合は作成されます。 ただし、 プロパティが に設定AddWithKeyされていない限りMissingSchemaAction、暗黙的に作成されたスキーマには主キー情報は含まれません。 また、 を使用してFillSchemaデータをSqlDataAdapter入力する前にDataSet、主キー情報を含む のスキーマを作成することもできます。 詳細については、「 DataSet への既存の制約の追加」を参照してください。

SqlDataAdapterは、 および とSqlConnection組み合わせて使用されSqlCommand、SQL Server データベースに接続するときのパフォーマンスが向上します。

Note

SQL Server のストアド プロシージャで、DataAdapter を使用してデータを編集または削除する場合、ストアド プロシージャの定義に SET NOCOUNT ON は使用しないでください。 処理された行数がゼロとして返され、DataAdapter によってコンカレンシーの競合として解釈されてしまいます。 この場合、DBConcurrencyException がスローされます。

SqlDataAdapterには、、、UpdateCommandDeleteCommand、および TableMappings の各プロパティも含SelectCommandInsertCommandまれており、データの読み込みと更新を容易にします。

SqlDataAdapter インスタンスが作成されると、読み取り/書き込みプロパティは初期値に設定されます。 これらの値の一覧については、 コンストラクターを SqlDataAdapter 参照してください。

InsertCommandDeleteCommand、および UpdateCommand は、パラメーター メカニズムを介して変更されたすべての行の個々の値で自動的に入力されるジェネリック テンプレートです。

のデータ ソースに伝達するすべての列についてUpdate、、、または DeleteCommandにパラメーターをInsertCommandUpdateCommand追加する必要があります。 オブジェクトの プロパティはSourceColumnDbParameter、列の名前に設定する必要があります。 この設定は、パラメーターの値が手動で設定されていないが、現在処理されている行の特定の列から取得されることを示します。

注意

InvalidOperationExceptionは、 メソッドがFill呼び出され、テーブルにクライアント コンピューターで使用できないユーザー定義型が含まれている場合に発生します。 詳細については、「 CLR ユーザー定義型」を参照してください。

コンストラクター

SqlDataAdapter()

SqlDataAdapter クラスの新しいインスタンスを初期化します。

SqlDataAdapter(SqlCommand)

SqlDataAdapter プロパティとして SqlCommand を指定して、SelectCommand クラスの新しいインスタンスを初期化します。

SqlDataAdapter(String, SqlConnection)

SqlDataAdapter オブジェクトと SelectCommand オブジェクトを指定して、SqlConnection クラスの新しいインスタンスを初期化します。

SqlDataAdapter(String, String)

SqlDataAdapter と接続文字列を指定して、SelectCommand クラスの新しいインスタンスを初期化します。

プロパティ

DeleteCommand

データ セットからレコードを削除するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。

InsertCommand

データ ソースに新しいレコードを挿入するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。

SelectCommand

データ ソース内のレコードを選択するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。

UpdateBatchSize

サーバーとの 1 回のラウンドトリップで処理される行数を取得または設定します。

UpdateCommand

データ ソース内のレコードを更新するための Transact-SQL ステートメントまたはストアド プロシージャを取得または設定します。

イベント

RowUpdated

Update(DataSet) 処理中に、データ ソースに対してコマンドが実行された後に発生します。 更新が試行されると、このイベントが発生します。

RowUpdating

Update(DataSet) 処理中に、データ ソースに対してコマンドが実行される前に発生します。 更新が試行されると、このイベントが発生します。

明示的なインターフェイスの実装

ICloneable.Clone()

このメンバーの詳細については、「Clone()」をご覧ください。

IDbDataAdapter.DeleteCommand

このメンバーの詳細については、「DeleteCommand」をご覧ください。

IDbDataAdapter.InsertCommand

このメンバーの詳細については、「InsertCommand」をご覧ください。

IDbDataAdapter.SelectCommand

このメンバーの詳細については、「SelectCommand」をご覧ください。

IDbDataAdapter.UpdateCommand

このメンバーの詳細については、「UpdateCommand」をご覧ください。

適用対象