SqlCommandBuilder クラス

定義

SQL Server データベースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。Automatically generates single-table commands that are used to reconcile changes made to a DataSet with the associated SQL Server database. このクラスは継承できません。This class cannot be inherited.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public ref class SqlCommandBuilder sealed : System::ComponentModel::Component
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
public sealed class SqlCommandBuilder : System.ComponentModel.Component
type SqlCommandBuilder = class
    inherit DbCommandBuilder
type SqlCommandBuilder = class
    inherit Component
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits Component
継承
継承
SqlCommandBuilder

次の例では、SqlDataAdapterSqlConnectionに沿って SqlCommandを使用して、データソースから行を選択します。The following example uses the SqlCommand, along SqlDataAdapter and SqlConnection, to select rows from a data source. この例では、接続文字列、Transact-sql SELECT ステートメントであるクエリ文字列、およびデータベーステーブルの名前を文字列として渡しています。The example is passed a connection string, a query string that is a Transact-SQL SELECT statement, and a string that is the name of the database table. この例では、SqlCommandBuilderを作成します。The example then creates a 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 のインスタンスを使用して DataSet に対して行われた変更を調整するために必要な Transact-sql ステートメントを自動的に生成しません。The SqlDataAdapter does not automatically generate the Transact-SQL statements required to reconcile changes made to a DataSet with the associated instance of SQL Server. ただし、SqlDataAdapterSelectCommand プロパティを設定した場合は、単一テーブルの更新に対して Transact-sql ステートメントを自動的に生成するために SqlCommandBuilder オブジェクトを作成することができます。However, you can create a SqlCommandBuilder object to automatically generate Transact-SQL statements for single-table updates if you set the SelectCommand property of the SqlDataAdapter. その後、設定していない追加の Transact-sql ステートメントは、SqlCommandBuilderによって生成されます。Then, any additional Transact-SQL statements that you do not set are generated by the SqlCommandBuilder.

SqlCommandBuilder は、DataAdapter プロパティを設定するたびに、RowUpdating イベントのリスナーとして自身を登録します。The SqlCommandBuilder registers itself as a listener for RowUpdating events whenever you set the DataAdapter property. 一度に関連付けることができるのは、1つの SqlDataAdapter または SqlCommandBuilder オブジェクトだけです。You can only associate one SqlDataAdapter or SqlCommandBuilder object with each other at one time.

INSERT、UPDATE、または DELETE ステートメントを生成するには、SqlCommandBuilderSelectCommand プロパティを使用して、必要なメタデータのセットを自動的に取得します。To generate INSERT, UPDATE, or DELETE statements, the SqlCommandBuilder uses the SelectCommand property to retrieve a required set of metadata automatically. 最初の更新の後など、メタデータの取得後に SelectCommand を変更する場合は、RefreshSchema メソッドを呼び出して、メタデータを更新する必要があります。If you change the SelectCommand after the metadata has been retrieved, such as after the first update, you should call the RefreshSchema method to update the metadata.

SelectCommand は少なくとも 1 つの主キーまたは一意の列を返す必要があります。The SelectCommand must also return at least one primary key or unique column. 存在しない場合は、 InvalidOperation例外が生成され、コマンドは生成されません。If none are present, an InvalidOperation exception is generated, and the commands are not generated.

SqlCommandBuilder では、SelectCommandによって参照される ConnectionCommandTimeout、および Transaction プロパティも使用されます。The SqlCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties referenced by the SelectCommand. ユーザーは、これらのプロパティの1つ以上が変更された場合、または SelectCommand 自体が置換された場合に RefreshSchema を呼び出す必要があります。The user should call RefreshSchema if one or more of these properties are modified, or if the SelectCommand itself is replaced. それ以外の場合、InsertCommandUpdateCommand、および DeleteCommand の各プロパティには、以前の値が保持されます。Otherwise the InsertCommand, UpdateCommand, and DeleteCommand properties retain their previous values.

Disposeを呼び出すと、SqlCommandBuilderSqlDataAdapterとの関連付けが解除され、生成されたコマンドは使用されなくなります。If you call Dispose, the SqlCommandBuilder is disassociated from the SqlDataAdapter, and the generated commands are no longer used.

コンストラクター

SqlCommandBuilder()

SqlCommandBuilder クラスの新しいインスタンスを初期化します。Initializes a new instance of the SqlCommandBuilder class.

SqlCommandBuilder(SqlDataAdapter)

関連付ける SqlCommandBuilder オブジェクトを指定して、SqlDataAdapter クラスの新しいインスタンスを初期化します。Initializes a new instance of the SqlCommandBuilder class with the associated SqlDataAdapter object.

プロパティ

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。Gets a value indicating whether the component can raise an event.

(継承元 Component)
CatalogLocation

SqlCommandBuilder クラスのインスタンスの CatalogLocation を取得または設定します。Gets or sets the CatalogLocation for an instance of the SqlCommandBuilder class.

CatalogSeparator

SqlCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を取得または設定します。Gets or sets a string used as the catalog separator for an instance of the SqlCommandBuilder class.

ConflictOption

ConflictOption で使用する DbCommandBuilder を指定します。Specifies which ConflictOption is to be used by the DbCommandBuilder.

(継承元 DbCommandBuilder)
Container

IContainer を含む Component を取得します。Gets the IContainer that contains the Component.

(継承元 Component)
DataAdapter

Transact-SQL ステートメントを自動生成する対象の SqlDataAdapter オブジェクトを取得または設定します。Gets or sets a SqlDataAdapter object for which Transact-SQL statements are automatically generated.

DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。Gets a value that indicates whether the Component is currently in design mode.

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。Gets the list of event handlers that are attached to this Component.

(継承元 Component)
QuotePrefix

名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。Gets or sets the starting character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

QuoteSuffix

名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための終了文字を取得または設定します。Gets or sets the ending character or characters to use when specifying SQL Server database objects, such as tables or columns, whose names contain characters such as spaces or reserved tokens.

SchemaSeparator

スキーマ識別子と他の識別子との間の区切り記号として使用される文字列を取得または設定します。Gets or sets the character to be used for the separator between the schema identifier and any other identifiers.

SetAllValues

UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。Specifies whether all column values in an update statement are included or only changed ones.

(継承元 DbCommandBuilder)
Site

ISiteComponentを取得または設定します。Gets or sets the ISite of the Component.

(継承元 Component)

メソッド

ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

DbCommandBuilder クラスのプロバイダーの実装が、追加パラメーターのプロパティを処理できるようにします。Allows the provider implementation of the DbCommandBuilder class to handle additional parameter properties.

(継承元 DbCommandBuilder)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(継承元 MarshalByRefObject)
DeriveParameters(SqlCommand)

SqlCommand で指定したストアド プロシージャからパラメーター情報を取得し、指定した Parameters オブジェクトの SqlCommand コレクションにパラメーターを格納します。Retrieves parameter information from the stored procedure specified in the SqlCommand and populates the Parameters collection of the specified SqlCommand object.

Dispose()

Component で使用されるすべてのリソースを解放します。Releases all resources used by the Component.

(継承元 Component)
Dispose(Boolean)

DbCommandBuilder で使用されたアンマネージド リソースを解放し、必要に応じてマネージド リソースも解放します。Releases the unmanaged resources used by the DbCommandBuilder and optionally releases the managed resources.

(継承元 DbCommandBuilder)
Dispose(Boolean)

Component で使用されたアンマネージド リソースを解放し、必要に応じてマネージド リソースも解放します。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(継承元 Component)
Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetDeleteCommand()

データベースで削除処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object required to perform deletions on the database.

GetDeleteCommand(Boolean)

データベースで削除処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object that is required to perform deletions on the database.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetInsertCommand()

データベースで挿入処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object required to perform insertions on the database.

GetInsertCommand(Boolean)

データベースで挿入処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object that is required to perform insertions on the database.

GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(継承元 MarshalByRefObject)
GetParameterName(Int32)

指定したパラメーターの名前を、@p# の形式で返します。Returns the name of the specified parameter in the format of @p#. カスタムのコマンド ビルダーを作成する場合に使用します。Use when building a custom command builder.

(継承元 DbCommandBuilder)
GetParameterName(String)

部分的なパラメーター名を指定して、完全なパラメーター名を返します。Returns the full parameter name, given the partial parameter name.

(継承元 DbCommandBuilder)
GetParameterPlaceholder(Int32)

関連付けられた SQL ステートメントのパラメーターのプレースホルダーを返します。Returns the placeholder for the parameter in the associated SQL statement.

(継承元 DbCommandBuilder)
GetSchemaTable(DbCommand)

DbCommandBuilder に対するスキーマ テーブルを返します。Returns the schema table for the DbCommandBuilder.

(継承元 DbCommandBuilder)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。Returns an object that represents a service provided by the Component or by its Container.

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
GetUpdateCommand()

データベースで更新処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object required to perform updates on the database.

GetUpdateCommand(Boolean)

データベースで更新処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。Gets the automatically generated SqlCommand object required to perform updates on the database.

InitializeCommand(DbCommand)

CommandTimeoutTransactionCommandTypeUpdateRowSource、および DbCommand の各プロパティをリセットします。Resets the CommandTimeout, Transaction, CommandType, and UpdateRowSource properties on the DbCommand.

(継承元 DbCommandBuilder)
InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(継承元 MarshalByRefObject)
QuoteIdentifier(String)

カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. ID に埋め込まれている引用符は、正しくエスケープされます。This includes correctly escaping any embedded quotes in the identifier.

RefreshSchema()

このコマンド ビルダーに関連付けられているコマンドをクリアします。Clears the commands that are associated with this command builder.

RefreshSchema()

この DbCommandBuilder に関連付けられているコマンドを削除します。Clears the commands associated with this DbCommandBuilder.

(継承元 DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

RowUpdating イベントのイベント ハンドラーを追加します。Adds an event handler for the RowUpdating event.

(継承元 DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

DbCommandBuilder を登録して、RowUpdatingDbDataAdapter イベントを処理します。Registers the DbCommandBuilder to handle the RowUpdating event for a DbDataAdapter.

(継承元 DbCommandBuilder)
ToString()

Component の名前 (存在する場合) を格納する String を返します。Returns a String containing the name of the Component, if any. このメソッドはオーバーライドできません。This method should not be overridden.

(継承元 Component)
UnquoteIdentifier(String)

引用符で囲まれた ID を指定して、引用符で囲まれていない正しい形式の ID を返します。Given a quoted identifier, returns the correct unquoted form of that identifier. ID に埋め込まれている引用符は、正しくエスケープ解除されます。This includes correctly unescaping any embedded quotes in the identifier.

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。Occurs when the component is disposed by a call to the Dispose() method.

(継承元 Component)

適用対象

こちらもご覧ください