OdbcCommandBuilder イベント
OdbcCommandBuilder クラス
アセンブリ: System.Data (system.data.dll 内)


OdbcDataAdapter では、データ ソースに関連付けられた DataSet への変更を調整するために必要な SQL ステートメントが、自動的に生成されることはありません。ただし、OdbcDataAdapter の SelectCommand プロパティを設定して、単一テーブルを更新する SQL ステートメントを自動的に生成する OdbcCommandBuilder オブジェクトを作成できます。続いて、OdbcCommandBuilder により、未設定の SQL ステートメントが追加で自動生成されます。
OdbcDataAdapter とそれに対応する OdbcCommandBuilder 間のリレーションシップは、常に 1 対 1 です。この対応を作成するには、OdbcCommandBuilder オブジェクトの OdbcDataAdapter プロパティを設定します。その結果、OdbcCommandBuilder はリスナとして登録され、DataSet を対象とする RowUpdating イベントの出力を生成します。
OdbcCommandBuilder では、INSERT、UPDATE、または DELETE ステートメントを生成するために、SelectCommand プロパティを使用して必要なメタデータ セットが取得されます。最初の更新の後など、メタデータが取得された後で SelectCommand の値を変更した場合は、続けて RefreshSchema メソッドを呼び出してメタデータを更新する必要があります。
![]() |
---|
SelectCommand プロパティに割り当てられた SELECT ステートメントで別名の列名が使用されている場合は、それを使用した INSERT、UPDATE、および DELETE ステートメントは正しくないか、失敗する可能性があります。基になる ODBC ドライバが別名の列名に対応する適切な元の列名を (SQLColAttribute の SQL_DESC_BASE_COLUMN_NAME 値を使用して) 提供できない場合、生成された INSERT、UPDATE、および DELETE ステートメントに別名が使用される可能性があります。たとえば、Microsoft ODBC Driver for Oracle は、元の列名として別名を返します。そのため、生成された INSERT、UPDATE、および DELETE ステートメントでエラーが発生します。 |
また、OdbcCommandBuilder では、SelectCommand が参照する Connection、CommandTimeout、および Transaction プロパティも使用されます。これらの 1 つ以上のプロパティを変更した場合、または SelectCommand プロパティの値を変更した場合は、ユーザーが RefreshSchema を呼び出す必要があります。この操作を行わないと、InsertCommand、UpdateCommand、および DeleteCommand プロパティが、変更前の値のままになります。
Dispose を呼び出すと、OdbcCommandBuilder と OdbcDataAdapter の関連付けが解除され、生成されたコマンドは使用されなくなります。

OdbcCommand を OdbcDataAdapter および OdbcConnection と共に使用して、データ ソースから行を選択する例を次に示します。この例では、初期化済みの DataSet、接続文字列、クエリ文字列 (SQL SELECT ステートメント)、およびデータ ソース テーブル名の文字列が渡されます。この例では、続いて、OdbcCommandBuilder を作成します。
Public Function SelectOdbcSrvRows( _ ByVal connectionString As String, ByVal queryString As String, _ ByVal tableName As String) As DataSet Dim dataSet As DataSet = New DataSet Using connection As New OdbcConnection(connectionString) Dim adapter As New OdbcDataAdapter() adapter.SelectCommand = _ New OdbcCommand(queryString, connection) Dim builder As OdbcCommandBuilder = _ New OdbcCommandBuilder(adapter) connection.Open() adapter.Fill(dataSet, tableName) ' Code to modify data in DataSet here ' Without the OdbcCommandBuilder this line would fail. adapter.Update(dataSet, tableName) End Using Return dataSet End Function
public static DataSet SelectOdbcSrvRows(string connectionString, string queryString, string tableName) { DataSet dataSet = new DataSet(); using (OdbcConnection connection = new OdbcConnection(connectionString)) { OdbcDataAdapter adapter = new OdbcDataAdapter(); adapter.SelectCommand = new OdbcCommand(queryString, connection); OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter); connection.Open(); adapter.Fill(dataSet, tableName); //code to modify data in DataSet here //Without the OdbcCommandBuilder this line would fail adapter.Update(dataSet, tableName); } return dataSet; }

System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommandBuilder
System.Data.Odbc.OdbcCommandBuilder


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


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



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


OdbcCommandBuilder コンストラクタ

名前 | 説明 |
---|---|
OdbcCommandBuilder () | OdbcCommandBuilder クラスの新しいインスタンスを初期化します。 |
OdbcCommandBuilder (OdbcDataAdapter) | 関連付ける OdbcDataAdapter オブジェクトを指定して、OdbcCommandBuilder クラスの新しいインスタンスを初期化します。 |

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


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

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


OdbcCommandBuilder プロパティ

名前 | 説明 | |
---|---|---|
![]() | CatalogLocation | DbCommandBuilder クラスのインスタンスの CatalogLocation を設定または取得します。 ( DbCommandBuilder から継承されます。) |
![]() | CatalogSeparator | DbCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を設定または取得します。 ( DbCommandBuilder から継承されます。) |
![]() | ConflictOption | DbCommandBuilder で使用する ConflictOption を指定します。 ( DbCommandBuilder から継承されます。) |
![]() | Container | Component を格納している IContainer を取得します。 ( Component から継承されます。) |
![]() | DataAdapter | この OdbcCommandBuilder オブジェクトが生成する SQL ステートメントの対象となる OdbcDataAdapter オブジェクトを取得または設定します。 |
![]() | QuotePrefix | 名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。 ( DbCommandBuilder から継承されます。) |
![]() | QuoteSuffix | 名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。 ( DbCommandBuilder から継承されます。) |
![]() | SchemaSeparator | スキーマ ID とその他の ID の間の区切り記号に使用する文字を取得または設定します。 ( DbCommandBuilder から継承されます。) |
![]() | SetAllValues | UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。 ( DbCommandBuilder から継承されます。) |
![]() | Site | Component の ISite を取得または設定します。 ( Component から継承されます。) |

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

OdbcCommandBuilder メソッド


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

OdbcCommandBuilder メンバ
データ ソースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。
OdbcCommandBuilder データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | CatalogLocation | DbCommandBuilder クラスのインスタンスの CatalogLocation を設定または取得します。(DbCommandBuilder から継承されます。) |
![]() | CatalogSeparator | DbCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を設定または取得します。(DbCommandBuilder から継承されます。) |
![]() | ConflictOption | DbCommandBuilder で使用する ConflictOption を指定します。(DbCommandBuilder から継承されます。) |
![]() | Container | Component を格納している IContainer を取得します。(Component から継承されます。) |
![]() | DataAdapter | この OdbcCommandBuilder オブジェクトが生成する SQL ステートメントの対象となる OdbcDataAdapter オブジェクトを取得または設定します。 |
![]() | QuotePrefix | 名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。(DbCommandBuilder から継承されます。) |
![]() | QuoteSuffix | 名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。(DbCommandBuilder から継承されます。) |
![]() | SchemaSeparator | スキーマ ID とその他の ID の間の区切り記号に使用する文字を取得または設定します。(DbCommandBuilder から継承されます。) |
![]() | 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 から継承されます。) |


- OdbcCommandBuilderのページへのリンク