dotConnect for Oracle Documentation
Devart.Data.Oracle Namespace / OracleCommandBuilder Class
Members Example

In This Topic
    OracleCommandBuilder Class
    In This Topic
    Automatically generates single-table commands used to reconcile changes made to a System.Data.DataSet with the Oracle.
    Public Class OracleCommandBuilder 
       Inherits Devart.Common.DbCommandBuilder
       Implements System.ComponentModel.IComponentSystem.IDisposable 

    The OracleDataAdapter does not automatically generate the SQL statements required to reconcile changes made to a System.Data.DataSet associated with Oracle. However, you can create a OracleCommandBuilder object that generates SQL statements for single-table updates. After assigning the OracleDataAdapter to the OracleCommandBuilder, it begins to generate any additional SQL statements that you do not set.

    The relationship between a OracleDataAdapter and its corresponding OracleCommandBuilder is always one-to-one. To create this correspondence, you set the DataAdapter property of the OracleCommandBuilder object. This causes the OracleCommandBuilder to register itself as a listener, which produces the output of OracleDataAdapter.RowUpdating events that affect the System.Data.DataSet.

    To generate INSERT, UPDATE, or DELETE statements, the OracleCommandBuilder uses the OracleDataAdapter.SelectCommand property to retrieve a required set of metadata. If you change the value of OracleDataAdapter.SelectCommand after the metadata has been retrieved (for example, after the first update), you then should call the Devart.Common.DbCommandBuilderBase.RefreshSchema method to update the metadata.

    The OracleCommandBuilder also uses the Connection, CommandTimeout, and System.Data.Common.DbCommand.Transaction properties referenced by the OracleDataAdapter.SelectCommand. The user should call Devart.Common.DbCommandBuilderBase.RefreshSchema if any of these properties are modified, or value of the OracleDataAdapter.SelectCommand property itself is changed. Otherwise the OracleDataAdapter.InsertCommand, OracleDataAdapter.UpdateCommand, and OracleDataAdapter.DeleteCommand properties retain their previous values.

    If you assign null to corresponding property of OracleDataAdapter, the OracleCommandBuilder will be disassociated from the OracleDataAdapter, and the generated commands will no longer be used.

    Note: This class is not available in .NET Standard 1.3 compatible assembly. It is available only in the assembly for full .NET Framework and .NET Standard 2.0 compatible assembly.

    The following example uses OracleCommand, along with OracleDataAdapter and OracleConnection, to select rows from Oracle. The example is passed an initialized System.Data.DataSet, a connection string, a query string that is SQL SELECT statement, and a string that is the name of the Oracle table. The example then creates a OracleCommandBuilder.
    public DataSet SelectOracleSrvRows(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName)
      OracleConnection myConn = new OracleConnection(myConnection);
      OracleDataAdapter myDataAdapter = new OracleDataAdapter();
      myDataAdapter.SelectCommand = new OracleCommand(mySelectQuery, myConn);
      OracleCommandBuilder myCommandBuilder = new OracleCommandBuilder(myDataAdapter);
      DataSet myDataSet = new DataSet();
      myDataAdapter.Fill(myDataSet, "Departments");
      //code to modify data in dataset here
      //Without the OracleCommandBuilder this line would fail
      myDataAdapter.Update(myDataSet, "Departments");
      return myDataSet;
    Public Function SelectOracleSrvRows(myDataSet As DataSet, 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 myCommandBuilder As OracleCommandBuilder = New OracleCommandBuilder(myDataAdapter)
      Dim myDataSet As DataSet = New DataSet
      myDataAdapter.Fill(myDataSet, "Departments")
      ' Code to modify data in DataSet here
      ' Without the OracleCommandBuilder this line would fail.
      myDataAdapter.Update(myDataSet, "Departments")
      SelectOracleSrvRows = myDataSet
    End Function
    Inheritance Hierarchy



    Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

    See Also