SqlCommandBuilder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
関連付けられた SQL Server データベースで DataSet に加えられた変更を調整するために使用される単一テーブル コマンドを自動的に生成します。 このクラスは継承できません。
public ref class SqlCommandBuilder sealed : System::ComponentModel::Component
public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.ComponentModel.Component
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
inherit Component
type SqlCommandBuilder = class
inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits Component
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
- 継承
- 継承
例
次の例では、SqlDataAdapterとSqlConnectionに沿ってSqlCommandを使用して、データ ソースから行を選択します。 この例では、接続文字列、Transact-SQL SELECT ステートメントであるクエリ文字列、およびデータベース テーブルの名前である文字列が渡されます。 次に、 SqlCommandBuilderを作成します。
public static DataSet SelectSqlRows(string connectionString,
string queryString, string tableName)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
connection.Open();
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, tableName);
//code to modify data in DataSet here
builder.GetUpdateCommand();
//Without the SqlCommandBuilder this line would fail
adapter.Update(dataSet, tableName);
return dataSet;
}
}
Private Function SelectSqlRows(ByVal connectionString As String, _
ByVal queryString As String, ByVal tableName As String) As DataSet
Using connection As New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = New SqlCommand(queryString, connection)
Dim builder As New SqlCommandBuilder(adapter)
connection.Open()
Dim dataSet As New DataSet()
adapter.Fill(dataSet, tableName)
' Code to modify data in DataSet here
builder.GetUpdateCommand()
' Without the SqlCommandBuilder this line would fail.
adapter.Update(dataSet, tableName)
Return dataSet
End Using
End Function
注釈
SqlDataAdapterでは、に加えられた変更を SQL Server の関連付けられたインスタンスと調整するために必要な Transact-SQL ステートメントは自動的には生成されません。 ただし、SqlDataAdapterのSelectCommand プロパティを設定すると、単一テーブル更新の Transact-SQL ステートメントを自動的に生成するSqlCommandBuilder オブジェクトを作成できます。 その後、設定しない追加の Transact-SQL ステートメントは、 SqlCommandBuilderによって生成されます。
SqlCommandBuilderは、DataAdapter プロパティを設定するたびに、RowUpdating イベントのリスナーとして自身を登録します。 一度に関連付けることができる SqlDataAdapter または SqlCommandBuilder オブジェクトは 1 つだけです。
INSERT、UPDATE、または DELETE ステートメントを生成するために、 SqlCommandBuilder は SelectCommand プロパティを使用して、必要なメタデータセットを自動的に取得します。 メタデータの取得後 (最初の更新後など) に SelectCommand を変更する場合は、 RefreshSchema メソッドを呼び出してメタデータを更新する必要があります。
SelectCommand は少なくとも 1 つの主キーまたは一意の列を返す必要があります。 存在しない場合は、 InvalidOperation 例外が生成され、コマンドは生成されません。
SqlCommandBuilderでは、SelectCommandによって参照されるConnection、CommandTimeout、およびTransactionプロパティも使用されます。 ユーザーは、これらのプロパティの 1 つ以上が変更された場合、またはSelectCommand自体が置き換えられた場合に、RefreshSchemaを呼び出す必要があります。 それ以外の場合、 InsertCommand、 UpdateCommand、および DeleteCommand のプロパティは、前の値を保持します。
Disposeを呼び出すと、SqlCommandBuilderはSqlDataAdapterとの関連付けが解除され、生成されたコマンドは使用されなくなります。
コンストラクター
| 名前 | 説明 |
|---|---|
| SqlCommandBuilder() |
SqlCommandBuilder クラスの新しいインスタンスを初期化します。 |
| SqlCommandBuilder(SqlDataAdapter) |
関連付けられたSqlDataAdapter オブジェクトを使用して、SqlCommandBuilder クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| CanRaiseEvents |
コンポーネントがイベントを発生できるかどうかを示す値を取得します。 (継承元 Component) |
| CatalogLocation |
SqlCommandBuilder クラスのインスタンスのCatalogLocationを取得または設定します。 |
| CatalogSeparator |
SqlCommandBuilder クラスのインスタンスのカタログ区切り記号として使用される文字列を取得または設定します。 |
| ConflictOption |
DbCommandBuilderで使用するConflictOptionを指定します。 (継承元 DbCommandBuilder) |
| Container |
IContainerを含むComponentを取得します。 (継承元 Component) |
| DataAdapter |
Transact-SQL ステートメントが自動的に生成される SqlDataAdapter オブジェクトを取得または設定します。 |
| DesignMode |
Componentが現在デザイン モードであるかどうかを示す値を取得します。 (継承元 Component) |
| Events |
この Componentにアタッチされているイベント ハンドラーの一覧を取得します。 (継承元 Component) |
| QuotePrefix |
テーブルや列などの SQL Server データベース オブジェクトの名前にスペースや予約トークンなどの文字が含まれている場合に使用する開始文字または文字を取得または設定します。 |
| QuoteSuffix |
テーブルや列などの SQL Server データベース オブジェクトの名前にスペースや予約トークンなどの文字が含まれている場合に使用する終了文字を取得または設定します。 |
| SchemaSeparator |
スキーマ識別子とその他の識別子の間の区切り記号に使用する文字を取得または設定します。 |
| SetAllValues |
update ステートメント内のすべての列値を含めるか、変更された列の値のみを含めるかを指定します。 (継承元 DbCommandBuilder) |
| Site | (継承元 Component) |
メソッド
| 名前 | 説明 |
|---|---|
| ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean) |
DbCommandBuilder クラスのプロバイダー実装が追加のパラメーター プロパティを処理できるようにします。 (継承元 DbCommandBuilder) |
| CreateObjRef(Type) |
リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。 (継承元 MarshalByRefObject) |
| DeriveParameters(SqlCommand) |
SqlCommandで指定されたストアド プロシージャからパラメーター情報を取得し、指定したSqlCommand オブジェクトのParameters コレクションを設定します。 |
| Dispose() |
Componentによって使用されるすべてのリソースを解放します。 (継承元 Component) |
| Dispose(Boolean) |
Componentによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。 (継承元 Component) |
| Dispose(Boolean) |
DbCommandBuilderによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。 (継承元 DbCommandBuilder) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetDeleteCommand() |
データベースの削除を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| GetDeleteCommand(Boolean) |
データベースの削除を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetInsertCommand() |
データベースの挿入を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| GetInsertCommand(Boolean) |
データベースの挿入を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| GetLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
| GetParameterName(Int32) |
指定したパラメーターの名前を |
| GetParameterName(String) |
部分パラメーター名を指定して、完全なパラメーター名を返します。 (継承元 DbCommandBuilder) |
| GetParameterPlaceholder(Int32) |
関連付けられている SQL ステートメントのパラメーターのプレースホルダーを返します。 (継承元 DbCommandBuilder) |
| GetSchemaTable(DbCommand) |
DbCommandBuilderのスキーマ テーブルを返します。 (継承元 DbCommandBuilder) |
| GetService(Type) |
ComponentまたはそのContainerによって提供されるサービスを表すオブジェクトを返します。 (継承元 Component) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| GetUpdateCommand() |
データベースの更新を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| GetUpdateCommand(Boolean) |
データベースの更新を実行するために必要な、自動的に生成された SqlCommand オブジェクトを取得します。 |
| InitializeCommand(DbCommand) |
DbCommandのCommandTimeout、Transaction、CommandType、およびUpdateRowSourceプロパティをリセットします。 (継承元 DbCommandBuilder) |
| InitializeLifetimeService() |
古い.
このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 (継承元 MarshalByRefObject) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| MemberwiseClone(Boolean) |
現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 (継承元 MarshalByRefObject) |
| QuoteIdentifier(String) |
正しいカタログ ケースで引用符で囲まれていない識別子を指定すると、その識別子の正しい引用符で囲まれた形式が返されます。 これには、識別子に埋め込まれた引用符が正しくエスケープされます。 |
| RefreshSchema() |
このコマンド ビルダーに関連付けられているコマンドをクリアします。 |
| RefreshSchema() |
この DbCommandBuilderに関連付けられているコマンドをクリアします。 (継承元 DbCommandBuilder) |
| RowUpdatingHandler(RowUpdatingEventArgs) |
RowUpdating イベントのイベント ハンドラーを追加します。 (継承元 DbCommandBuilder) |
| SetRowUpdatingHandler(DbDataAdapter) |
DbDataAdapterのRowUpdating イベントを処理するDbCommandBuilderを登録します。 (継承元 DbCommandBuilder) |
| ToString() |
Stringの名前 (存在する場合) を含むComponentを返します。 このメソッドはオーバーライドしないでください。 (継承元 Component) |
| UnquoteIdentifier(String) |
引用符で囲まれた識別子を指定すると、その識別子の正しい引用符で囲まれていない形式が返されます。 これには、識別子に埋め込まれた引用符を正しくエスケープ解除する必要があります。 |
イベント
| 名前 | 説明 |
|---|---|
| Disposed |
コンポーネントが Dispose() メソッドの呼び出しによって破棄されるときに発生します。 (継承元 Component) |