SqlCommandBuilder イベント


関連項目
SqlCommandBuilder クラスSystem.Data.SqlClient 名前空間
その他の技術情報
ADO.NET でのデータへの接続およびデータの取得.NET Framework Data Provider for SQL Server の使用
SqlCommandBuilder クラス
アセンブリ: System.Data (system.data.dll 内)


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.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommandBuilder
System.Data.SqlClient.SqlCommandBuilder


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SqlCommandBuilder コンストラクタ ()
アセンブリ: System.Data (system.data.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SqlCommandBuilder コンストラクタ

名前 | 説明 |
---|---|
SqlCommandBuilder () | SqlCommandBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
SqlCommandBuilder (SqlDataAdapter) | 関連付ける SqlDataAdapter オブジェクトを指定して、SqlCommandBuilder クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |

SqlCommandBuilder コンストラクタ (SqlDataAdapter)
アセンブリ: System.Data (system.data.dll 内)


このプロパティで指定した SqlDataAdapter が生成する RowUpdating イベントのリスナとして、SqlCommandBuilder が自動的に登録されます。
新しい SqlCommandBuilder インスタンスを作成すると、この SqlDataAdapter に関連付けられていた既存の SqlCommandBuilder が解放されます。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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 から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CanRaiseEvents | コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。 ( Component から継承されます。) |
![]() | DesignMode | Component が現在デザイン モードかどうかを示す値を取得します。 ( Component から継承されます。) |
![]() | Events | Component に結び付けられているイベント ハンドラのリストを取得します。 ( Component から継承されます。) |

関連項目
SqlCommandBuilder クラスSystem.Data.SqlClient 名前空間
その他の技術情報
ADO.NET でのデータへの接続およびデータの取得.NET Framework Data Provider for SQL Server の使用
SqlCommandBuilder メソッド


名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。) |
![]() | Finalize | Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 ( Component から継承されます。) |
![]() | GetService | Component またはその Container で提供されるサービスを表すオブジェクトを返します。 ( Component から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

関連項目
SqlCommandBuilder クラスSystem.Data.SqlClient 名前空間
その他の技術情報
ADO.NET でのデータへの接続およびデータの取得.NET Framework Data Provider for SQL Server の使用
SqlCommandBuilder メンバ
SQL Server データベースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。
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 から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | CanRaiseEvents | コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。(Component から継承されます。) |
![]() | DesignMode | Component が現在デザイン モードかどうかを示す値を取得します。(Component から継承されます。) |
![]() | Events | Component に結び付けられているイベント ハンドラのリストを取得します。(Component から継承されます。) |


名前 | 説明 | |
---|---|---|
![]() | Dispose | オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。) |
![]() | Finalize | Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 (Component から継承されます。) |
![]() | GetService | Component またはその Container で提供されるサービスを表すオブジェクトを返します。 (Component から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |


関連項目
SqlCommandBuilder クラスSystem.Data.SqlClient 名前空間
その他の技術情報
ADO.NET でのデータへの接続およびデータの取得.NET Framework Data Provider for SQL Server の使用
- SqlCommandBuilderのページへのリンク