SqlCommandBuilderとは? わかりやすく解説

SqlCommandBuilder イベント


SqlCommandBuilder クラス

SQL Server データベースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 SqlCommandBuilder
    Inherits DbCommandBuilder
Dim instance As SqlCommandBuilder
public sealed class SqlCommandBuilder : DbCommandBuilder
public ref class SqlCommandBuilder sealed :
 public DbCommandBuilder
public final class SqlCommandBuilder extends
 DbCommandBuilder
public final class SqlCommandBuilder extends
 DbCommandBuilder
解説解説

SqlDataAdapter では、SQL Server のインスタンスに関連付けられた DataSet への変更を調整する Transact-SQL ステートメントが自動的には生成されません。ただし、SqlDataAdapter の SelectCommand プロパティを設定した場合は、単一テーブルを更新する Transact-SQL ステートメントを自動的に生成する SqlCommandBuilder オブジェクトを作成できます。これによって、追加の Transact-SQL ステートメントが、SqlCommandBuilder によって自動的に生成されます。

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

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

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

また、SqlCommandBuilder では、SelectCommand が参照する Connection、CommandTimeout、および Transaction プロパティも使用されます。これらの 1 つ以上のプロパティを変更した場合、または SelectCommand 自体を置き換えた場合は、ユーザーが RefreshSchema を呼び出す必要があります。この操作を行わないと、InsertCommand、UpdateCommand、および DeleteCommand プロパティが、変更前の値のままになります。

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

使用例使用例

SqlCommand を SqlDataAdapter および SqlConnection と共に使用して、データ ソースから行を選択する例を次に示します。この例では、接続文字列、Transact-SQL SELECT ステートメントのクエリ文字列、およびデータベース テーブル名の文字列が渡されます。これらを基に、SqlCommandBuilder を作成します。

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 SqlCommandBuilder =
 New SqlCommandBuilder(adapter)

        connection.Open()

        Dim dataSet As DataSet = New
 DataSet
        adapter.Fill(dataSet, tableName)

        ' Code to modify data in DataSet here 

        ' Without the SqlCommandBuilder this line would fail.
        adapter.Update(dataSet, tableName)

        Return dataSet
    End Using
 End Function
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

        //Without the SqlCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);

        return dataSet;
    }
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbCommandBuilder
        System.Data.SqlClient.SqlCommandBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommandBuilder コンストラクタ ()


SqlCommandBuilder コンストラクタ

SqlCommandBuilder クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
SqlCommandBuilder () SqlCommandBuilder クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

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

.NET Compact Framework によってサポートされています。

参照参照

関連項目

SqlCommandBuilder クラス
SqlCommandBuilder メンバ
System.Data.SqlClient 名前空間

SqlCommandBuilder コンストラクタ (SqlDataAdapter)

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

名前空間: System.Data.SqlClient
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    adapter As SqlDataAdapter _
)
Dim adapter As SqlDataAdapter

Dim instance As New SqlCommandBuilder(adapter)
public SqlCommandBuilder (
    SqlDataAdapter adapter
)
public:
SqlCommandBuilder (
    SqlDataAdapter^ adapter
)
public SqlCommandBuilder (
    SqlDataAdapter adapter
)
public function SqlCommandBuilder (
    adapter : SqlDataAdapter
)

パラメータ

adapter

SqlDataAdapter の名前。

解説解説

このプロパティで指定した SqlDataAdapter が生成する RowUpdating イベントのリスナとして、SqlCommandBuilder が自動的に登録されます。

新しい SqlCommandBuilder インスタンスを作成すると、この SqlDataAdapter に関連付けられていた既存の SqlCommandBuilder が解放されます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

SqlCommandBuilder プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ CatalogLocation オーバーライドされます。 SqlCommandBuilder クラスのインスタンスの CatalogLocation を取得または設定します。
パブリック プロパティ CatalogSeparator オーバーライドされます。 SqlCommandBuilder クラスのインスタンスのカタログ区切り記号として使用される文字列を取得または設定します。
パブリック プロパティ ConflictOption  DbCommandBuilder で使用する ConflictOption を指定します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ Container  Component を格納している IContainer を取得します。 ( Component から継承されます。)
パブリック プロパティ QuotePrefix オーバーライドされます。 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。
パブリック プロパティ QuoteSuffix オーバーライドされます。 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための終了文字を取得または設定します。
パブリック プロパティ SchemaSeparator オーバーライドされます。 スキーマ識別子と他の識別子との間の区切り記号として使用される文字列を取得または設定します。
パブリック プロパティ SetAllValues  UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ Site  Component の ISite を取得または設定します。 ( Component から継承されます。)
プロテクト プロパティプロテクト プロパティ
参照参照

関連項目

SqlCommandBuilder クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlCommandBuilder メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド DeriveParameters SqlCommand で指定したストアド プロシージャからパラメータ情報を取得し、指定した SqlCommand オブジェクトの Parameters コレクションにパラメータを格納します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetDeleteCommand オーバーロードされます。 データベースで削除処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetInsertCommand オーバーロードされます。  
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド GetUpdateCommand オーバーロードされます。 データベースで更新処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド QuoteIdentifier オーバーライドされます。 カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。ID に埋め込まれている引用符は、正しくエスケープされます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RefreshSchema  この DbCommandBuilder に関連付けられているコマンドを削除します。 ( DbCommandBuilder から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
パブリック メソッド UnquoteIdentifier オーバーライドされます。 引用符で囲まれた ID を指定して、引用符で囲まれていない正しい形式の ID を返します。ID に埋め込まれている引用符は、正しくエスケープ解除されます。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SqlCommandBuilder クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用

SqlCommandBuilder メンバ

SQL Server データベースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。

SqlCommandBuilder データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド SqlCommandBuilder オーバーロードされます。 SqlCommandBuilder クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ CatalogLocation オーバーライドされます。 SqlCommandBuilder クラスのインスタンスの CatalogLocation を取得または設定します。
パブリック プロパティ CatalogSeparator オーバーライドされます。 SqlCommandBuilder クラスのインスタンスのカタログ区切り記号として使用される文字列を取得または設定します。
パブリック プロパティ ConflictOption  DbCommandBuilder で使用する ConflictOption を指定します。(DbCommandBuilder から継承されます。)
パブリック プロパティ Container  Component を格納している IContainer を取得します。(Component から継承されます。)
パブリック プロパティ QuotePrefix オーバーライドされます。 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。
パブリック プロパティ QuoteSuffix オーバーライドされます。 名前に空白や予約済みトークンなどの文字を含む SQL Server データベース オブジェクト (テーブル、列など) を指定するための終了文字を取得または設定します。
パブリック プロパティ SchemaSeparator オーバーライドされます。 スキーマ識別子と他の識別子との間の区切り記号として使用される文字列を取得または設定します。
パブリック プロパティ SetAllValues  UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。(DbCommandBuilder から継承されます。)
パブリック プロパティ Site  Component の ISite を取得または設定します。(Component から継承されます。)
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド DeriveParameters SqlCommand で指定したストアド プロシージャからパラメータ情報を取得し、指定した SqlCommand オブジェクトの Parameters コレクションにパラメータを格納します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetDeleteCommand オーバーロードされます。 データベースで削除処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetInsertCommand オーバーロードされます。  
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド GetUpdateCommand オーバーロードされます。 データベースで更新処理を実行するための、自動生成された SqlCommand オブジェクトを取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド QuoteIdentifier オーバーライドされます。 カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。ID に埋め込まれている引用符は、正しくエスケープされます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RefreshSchema  この DbCommandBuilder に関連付けられているコマンドを削除します。 (DbCommandBuilder から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
パブリック メソッド UnquoteIdentifier オーバーライドされます。 引用符で囲まれた ID を指定して、引用符で囲まれていない正しい形式の ID を返します。ID に埋め込まれている引用符は、正しくエスケープ解除されます。
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
参照参照

関連項目

SqlCommandBuilder クラス
System.Data.SqlClient 名前空間

その他の技術情報

ADO.NET でのデータへの接続およびデータの取得
.NET Framework Data Provider for SQL Server の使用



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SqlCommandBuilder」の関連用語

SqlCommandBuilderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SqlCommandBuilderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS