SqlCommandBuilder SqlCommandBuilder SqlCommandBuilder SqlCommandBuilder Class

定義

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 sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
継承

次の例ではSqlCommandSqlDataAdapterSqlConnectionを使用して、データソースから行を選択します。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

注釈

は、に関連付けられた SQL Server のインスタンスを使用してに加えられた変更を調整するために必要なtransact-sqlステートメントを自動的に生成しません。DataSet SqlDataAdapterThe SqlDataAdapter does not automatically generate the Transact-SQL statements required to reconcile changes made to a DataSet with the associated instance of SQL Server. ただし、のSqlCommandBuilder プロパティをSelectCommand設定した場合は、単一テーブルの更新に対して transact-sql ステートメントを自動的に生成するオブジェクトを作成できます。SqlDataAdapterHowever, 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.

SqlCommandBuilderDataAdapterプロパティを設定するたび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 ステートメントを生成するSqlCommandBuilderためにSelectCommand 、はプロパティを使用して、必要なメタデータのセットを自動的に取得します。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 、によっConnectionCommandTimeout参照さTransactionれる、、およびの各プロパティも使用します。SelectCommandThe SqlCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties referenced by the SelectCommand. ユーザーは、これらRefreshSchemaのプロパティの1つ以上が変更された場合、 SelectCommandまたはそれ自体が置換された場合は、を呼び出す必要があります。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 SqlCommandBuilderと、はとの関連付けSqlDataAdapterが解除され、生成されたコマンドは使用されなくなります。If you call Dispose, the SqlCommandBuilder is disassociated from the SqlDataAdapter, and the generated commands are no longer used.

コンストラクター

SqlCommandBuilder() SqlCommandBuilder() SqlCommandBuilder() SqlCommandBuilder()

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

SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter) SqlCommandBuilder(SqlDataAdapter)

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

プロパティ

CanRaiseEvents CanRaiseEvents CanRaiseEvents CanRaiseEvents

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

(Inherited from Component)
CatalogLocation CatalogLocation CatalogLocation CatalogLocation

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

CatalogSeparator CatalogSeparator CatalogSeparator CatalogSeparator

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

Container Container Container Container

IContainer を格納している Component を取得します。Gets the IContainer that contains the Component.

(Inherited from Component)
DataAdapter DataAdapter DataAdapter DataAdapter

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

DesignMode DesignMode DesignMode DesignMode

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

(Inherited from Component)
Events Events Events Events

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

(Inherited from Component)
QuotePrefix QuotePrefix QuotePrefix 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 QuoteSuffix QuoteSuffix 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 SchemaSeparator SchemaSeparator SchemaSeparator

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

Site Site Site Site

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

(Inherited from Component)

メソッド

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

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

(Inherited from MarshalByRefObject)
DeriveParameters(SqlCommand) DeriveParameters(SqlCommand) DeriveParameters(SqlCommand) 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() Dispose() Dispose() Dispose()

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

(Inherited from Component)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(Inherited from Component)
Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetDeleteCommand() GetDeleteCommand() GetDeleteCommand() GetDeleteCommand()

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

GetDeleteCommand(Boolean) GetDeleteCommand(Boolean) GetDeleteCommand(Boolean) GetDeleteCommand(Boolean)

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetInsertCommand() GetInsertCommand() GetInsertCommand() GetInsertCommand()

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

GetInsertCommand(Boolean) GetInsertCommand(Boolean) GetInsertCommand(Boolean) GetInsertCommand(Boolean)

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

GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

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

(Inherited from MarshalByRefObject)
GetService(Type) GetService(Type) GetService(Type) GetService(Type)

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

(Inherited from Component)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
GetUpdateCommand() GetUpdateCommand() GetUpdateCommand() GetUpdateCommand()

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

GetUpdateCommand(Boolean) GetUpdateCommand(Boolean) GetUpdateCommand(Boolean) GetUpdateCommand(Boolean)

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

InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

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

(Inherited from MarshalByRefObject)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

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

(Inherited from MarshalByRefObject)
QuoteIdentifier(String) QuoteIdentifier(String) QuoteIdentifier(String) 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() RefreshSchema() RefreshSchema() RefreshSchema()

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

ToString() ToString() ToString() ToString()

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

(Inherited from Component)
UnquoteIdentifier(String) UnquoteIdentifier(String) UnquoteIdentifier(String) 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 Disposed Disposed Disposed

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

(Inherited from Component)

適用対象

こちらもご覧ください