SqlDataAdapter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ コマンドのセットと、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
- 実装
例
次の例では、 、SqlDataAdapter、 SqlConnection をSqlCommand使用してデータベースからレコードを選択し、 に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
コマンド テンプレートがInsert
Update
実行され、変更された行がデータ ソースに反映されます。 が SqlDataAdapter を DataSet塗りつぶすと、返されたデータに必要なテーブルと列がまだ存在しない場合は作成されます。 ただし、 プロパティが に設定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
にパラメーターをInsertCommand
UpdateCommand
追加する必要があります。 オブジェクトの プロパティは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」をご覧ください。 |