次の方法で共有


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

次の例では、SqlDataAdapterSqlConnectionに沿って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 ステートメントは自動的には生成されません。 ただし、SqlDataAdapterSelectCommand プロパティを設定すると、単一テーブル更新の Transact-SQL ステートメントを自動的に生成するSqlCommandBuilder オブジェクトを作成できます。 その後、設定しない追加の Transact-SQL ステートメントは、 SqlCommandBuilderによって生成されます。

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

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

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

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

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

コンストラクター

名前 説明
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

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

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

指定したパラメーターの名前を @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)

DbCommandCommandTimeoutTransactionCommandType、およびUpdateRowSourceプロパティをリセットします。

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

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

(継承元 MarshalByRefObject)
MemberwiseClone()

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

(継承元 Object)
MemberwiseClone(Boolean)

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

(継承元 MarshalByRefObject)
QuoteIdentifier(String)

正しいカタログ ケースで引用符で囲まれていない識別子を指定すると、その識別子の正しい引用符で囲まれた形式が返されます。 これには、識別子に埋め込まれた引用符が正しくエスケープされます。

RefreshSchema()

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

RefreshSchema()

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

(継承元 DbCommandBuilder)
RowUpdatingHandler(RowUpdatingEventArgs)

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

(継承元 DbCommandBuilder)
SetRowUpdatingHandler(DbDataAdapter)

DbDataAdapterRowUpdating イベントを処理するDbCommandBuilderを登録します。

(継承元 DbCommandBuilder)
ToString()

Stringの名前 (存在する場合) を含むComponentを返します。 このメソッドはオーバーライドしないでください。

(継承元 Component)
UnquoteIdentifier(String)

引用符で囲まれた識別子を指定すると、その識別子の正しい引用符で囲まれていない形式が返されます。 これには、識別子に埋め込まれた引用符を正しくエスケープ解除する必要があります。

イベント

名前 説明
Disposed

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

(継承元 Component)

適用対象

こちらもご覧ください