SqlCommandBuilder クラス

定義

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
継承
SqlCommandBuilder
継承

次の例では、 と と SqlDataAdapterSqlConnectionSqlCommand使用して、データ ソースから行を選択します。 この例では、接続文字列、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では、 に加えられたDataSet変更を SQL Server の関連付けられたインスタンスと調整するために必要な Transact-SQL ステートメントは自動的には生成されません。 ただし、 の プロパティをSqlCommandBuilder設定すると、単一テーブル更新用の Transact-SQL ステートメントを自動的に生成する オブジェクトをSelectCommandSqlDataAdapter作成できます。 次に、設定しない追加の Transact-SQL ステートメントは によって SqlCommandBuilder生成されます。

では SqlCommandBuilder 、 プロパティを設定するたびに、イベントの RowUpdating リスナーとして自身が登録されます DataAdapter 。 一度に関連付けることができるのは、1 つまたはSqlDataAdapterSqlCommandBuilder複数のオブジェクトのみです。

INSERT、UPDATE、または DELETE ステートメントを生成するには、 SqlCommandBuilder プロパティを SelectCommand 使用して、必要なメタデータセットを自動的に取得します。 メタデータの取得後 (最初の更新後など) を変更 SelectCommand する場合は、 メソッドを RefreshSchema 呼び出してメタデータを更新する必要があります。

SelectCommand は少なくとも 1 つの主キーまたは一意の列を返す必要があります。 存在しない場合は、 InvalidOperation 例外が生成され、コマンドは生成されません。

では SqlCommandBuilderConnectionによって参照される 、 CommandTimeout、および Transaction の各プロパティも使用されます SelectCommand。 ユーザーは、これらのプロパティの 1 つ以上が変更された場合、またはそれ自体が置き換えられた場合に をSelectCommand呼び出すRefreshSchema必要があります。 それ以外の場合、 InsertCommandUpdateCommand、および DeleteCommand の各プロパティは、以前の値を保持します。

を呼び出 Disposeすと、 SqlCommandBuilder は から SqlDataAdapter関連付け解除され、生成されたコマンドは使用されなくなります。

コンストラクター

SqlCommandBuilder()

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

SqlCommandBuilder(SqlDataAdapter)

関連付ける SqlCommandBuilder オブジェクトを指定して、SqlDataAdapter クラスの新しいインスタンスを初期化します。

プロパティ

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
CatalogLocation

SqlCommandBuilder クラスのインスタンスの CatalogLocation を取得または設定します。

CatalogSeparator

SqlCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を取得または設定します。

ConflictOption

ConflictOption で使用する DbCommandBuilder を指定します。

(継承元 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

ComponentISite を取得または設定します。

(継承元 Component)

メソッド

ApplyParameterInfo(DbParameter, DataRow, StatementType, Boolean)

DbCommandBuilder クラスのプロバイダーの実装が、追加パラメーターのプロパティを処理できるようにします。

(継承元 DbCommandBuilder)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
DeriveParameters(SqlCommand)

SqlCommand で指定したストアド プロシージャからパラメーター情報を取得し、指定した Parameters オブジェクトの SqlCommand コレクションにパラメーターを格納します。

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)

指定したパラメーターの名前を の形式 @p#で返します。 カスタムのコマンド ビルダーを作成する場合に使用します。

(継承元 DbCommandBuilder)
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)

CommandTimeoutTransactionCommandTypeUpdateRowSource、および DbCommand の各プロパティをリセットします。

(継承元 DbCommandBuilder)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
QuoteIdentifier(String)

カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。 ID に埋め込まれている引用符は、正しくエスケープされます。

RefreshSchema()

このコマンド ビルダーに関連付けられているコマンドをクリアします。

RefreshSchema()

この DbCommandBuilder に関連付けられているコマンドを削除します。

(継承元 DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

RowUpdating イベントのイベント ハンドラーを追加します。

(継承元 DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

DbCommandBuilder を登録して、RowUpdatingDbDataAdapter イベントを処理します。

(継承元 DbCommandBuilder)
ToString()

Component の名前 (存在する場合) を格納する String を返します。 このメソッドはオーバーライドできません。

(継承元 Component)
UnquoteIdentifier(String)

引用符で囲まれた ID を指定して、引用符で囲まれていない正しい形式の ID を返します。 ID に埋め込まれている引用符は、正しくエスケープ解除されます。

イベント

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)

適用対象

こちらもご覧ください