次の方法で共有


OracleCommandBuilder クラス

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

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

この型のすべてのメンバの一覧については、OracleCommandBuilder メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.OracleClient.OracleCommandBuilder

NotInheritable Public Class OracleCommandBuilder
   Inherits Component
[C#]
public sealed class OracleCommandBuilder : Component
[C++]
public __gc __sealed class OracleCommandBuilder : public Component
[JScript]
public class OracleCommandBuilder extends Component

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

OracleDataAdapter では、データベースに関連付けられた DataSet への変更を調整する SQL ステートメントは、自動的に生成されません。ただし、 OracleDataAdapterSelectCommand プロパティを設定して、単一テーブルを更新する SQL ステートメントを自動的に生成する OracleCommandBuilder オブジェクトを作成できます。続いて、 OracleCommandBuilder により、未設定の SQL ステートメントが追加で自動生成されます。

OracleDataAdapter とそれに対応する OracleCommandBuilder 間のリレーションシップは、常に 1 対 1 です。この対応を作成するには、 OracleCommandBuilder オブジェクトの OracleDataAdapter プロパティを設定します。その結果、 OracleCommandBuilder はリスナとして登録され、 DataSet を対象とする RowUpdating イベントの出力を生成します。

OracleCommandBuilder では、INSERT、UPDATE、または DELETE ステートメントを生成するために、 SelectCommand プロパティを使用して必要なメタデータ セットが取得されます。

また、 OracleCommandBuilder では、 SelectCommand が参照する Connection プロパティと Transaction プロパティも使用されます。

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

使用例

[Visual Basic, C#, C++] OracleCommandOracleDataAdapter および OracleConnection と共に使用して、データベースから行を選択する例を次に示します。この例のコードには、初期化済みの DataSet 、接続文字列、クエリ文字列 (SQL SELECT ステートメント)、およびデータベース テーブル名の文字列が渡されます。この例では、続いて、 OracleCommandBuilder を作成します。

 
Public Shared Function SelectOracleSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
    Dim myConn As New OracleConnection(myConnection)
    Dim myDataAdapter As New OracleDataAdapter()
    myDataAdapter.SelectCommand = New OracleCommand(mySelectQuery, myConn)
    Dim cb As OracleCommandBuilder = New OracleCommandBuilder(myDataAdapter)

    myConn.Open()

    Dim ds As DataSet = New DataSet
    myDataAdapter.Fill(ds, myTableName)

    ' Code to modify data in DataSet here 

    ' Without the OracleCommandBuilder this line would fail.
    myDataAdapter.Update(ds, myTableName)

    myConn.Close()
End Function 'SelectOracleSrvRows

[C#] 
public static DataSet SelectOracleSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
   OracleConnection myConn = new OracleConnection(myConnection);
   OracleDataAdapter myDataAdapter = new OracleDataAdapter();
   myDataAdapter.SelectCommand = new OracleCommand(mySelectQuery, myConn);
   OracleCommandBuilder cb = new OracleCommandBuilder(myDataAdapter);

   myConn.Open();

   DataSet ds = new DataSet();
   myDataAdapter.Fill(ds, myTableName);

   //code to modify data in DataSet here

   //Without the OracleCommandBuilder this line would fail
   myDataAdapter.Update(ds, myTableName);

   myConn.Close();

   return ds;
}

[C++] 
public:
 static DataSet* SelectOracleSrvRows(String* myConnection, String* mySelectQuery, String* myTableName)
 {
    OracleConnection* myConn = new OracleConnection(myConnection);
    OracleDataAdapter* myDataAdapter = new OracleDataAdapter();
    myDataAdapter->SelectCommand = new OracleCommand(mySelectQuery, myConn);
    OracleCommandBuilder* cb = new OracleCommandBuilder(myDataAdapter);

    myConn->Open();

    DataSet* ds = new DataSet();
    myDataAdapter->Fill(ds, myTableName);

    //code to modify data in DataSet here

    //Without the OracleCommandBuilder this line would fail
    myDataAdapter->Update(ds, myTableName);

    myConn->Close();

    return ds;
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data.OracleClient

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Data.Oracleclient (System.Data.Oracleclient.dll 内)

参照

OracleCommandBuilder メンバ | System.Data.OracleClient 名前空間