# C1.DataConnector.AdoNet.C1DataAdapterBase-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_DataConnector_AdoNet_C1DataAdapterBase_1" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1" class="text-break">C1DataAdapterBase&lt;TCommandImpl&gt; Class
</h1>
  <div class="markdown level0 summary"><p>The base class for a custom <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase.html">C1DataAdapterBase</a> with <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.dbcommand">DbCommand</a> as a generic input type</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.marshalbyrefobject">MarshalByRefObject</a></div>
    <div class="level2"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.component">Component</a></div>
    <div class="level3"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.dataadapter">DataAdapter</a></div>
    <div class="level4"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.dbdataadapter">DbDataAdapter</a></div>
    <div class="level5"><a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase.html">C1DataAdapterBase</a></div>
    <div class="level6"><span class="xref">C1DataAdapterBase&lt;TCommandImpl&gt;</span></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.CSV/C1.AdoNet.CSV.C1CSVDataAdapter.html">C1CSVDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.D365S/C1.AdoNet.D365S.C1D365SDataAdapter.html">C1D365SDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.GoogleAnalytics/C1.AdoNet.GoogleAnalytics.C1GoogleAnalyticsDataAdapter.html">C1GoogleAnalyticsDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.Json/C1.AdoNet.Json.C1JsonDataAdapter.html">C1JsonDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.Kintone/C1.AdoNet.Kintone.C1KintoneDataAdapter.html">C1KintoneDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.Magento/C1.AdoNet.Magento.C1MagentoDataAdapter.html">C1MagentoDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.OData/C1.AdoNet.OData.C1ODataDataAdapter.html">C1ODataDataAdapter</a></div>
      <div class="level7"><a class="xref" href="../C1.AdoNet.QuickBooksOnline/C1.AdoNet.QuickBooksOnline.C1QuickBooksOnlineDataAdapter.html">C1QuickBooksOnlineDataAdapter</a></div>
      <div class="level7"><a class="xref" href="C1.AdoNet.Salesforce.C1SalesforceDataAdapter.html">C1SalesforceDataAdapter</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.icomponent">IComponent</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.icloneable">ICloneable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.idbdataadapter">IDbDataAdapter</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.idataadapter">IDataAdapter</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.DataConnector.AdoNet.html">C1.DataConnector.AdoNet</a></h6>
  <h6><strong>Assembly</strong>: C1.AdoNet.Salesforce.dll</h6>
  <h5 id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class C1DataAdapterBase&lt;TCommandImpl&gt; : C1DataAdapterBase, IComponent, IDisposable, ICloneable, IDbDataAdapter, IDataAdapter where TCommandImpl : DbCommand</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public MustInherit Class C1DataAdapterBase(Of TCommandImpl As DbCommand)
    Inherits C1DataAdapterBase
    Implements IComponent, IDisposable, ICloneable, IDbDataAdapter, IDataAdapter</code></pre>
  </div>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TCommandImpl</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1__ctor" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.#ctor">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.-ctor.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1__ctor">C1DataAdapterBase()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase.html">C1DataAdapterBase</a> class.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_DeleteCommand" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.DeleteCommand">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.DeleteCommand.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_DeleteCommand">DeleteCommand</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets an SQL statement to delete records from the data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_InsertCommand" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.InsertCommand">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.InsertCommand.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_InsertCommand">InsertCommand</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets an SQL statement used to insert new records into the data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_SelectCommand" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.SelectCommand">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.SelectCommand.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_SelectCommand">SelectCommand</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets an SQL statement to retrieve records from the data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_UpdateBatchSize" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.UpdateBatchSize">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.UpdateBatchSize.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_UpdateBatchSize">UpdateBatchSize</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the number of commands that can be executed in a single batch,
also effectively enabling (&gt;1) or disabling batch support.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_UpdateCommand" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.UpdateCommand">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.UpdateCommand.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_UpdateCommand">UpdateCommand</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets an SQL statement used to update records in the data source.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_AddToBatch_System_Data_IDbCommand_" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.AddToBatch(System.Data.IDbCommand)">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.AddToBatch.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_AddToBatch_System_Data_IDbCommand_">AddToBatch(IDbCommand)</a>
        </td>
        <td class="markdown level1 summary"><p>Invoked for every row affected based on the current records in DataTable.
It got called the same amount of times as the value of UpdateBatchSize.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_ClearBatch" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.ClearBatch">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.ClearBatch.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_ClearBatch">ClearBatch()</a>
        </td>
        <td class="markdown level1 summary"><p>Once ExecuteBatch finished, this will get invoked automatically.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_CreateRowUpdatedEvent_System_Data_DataRow_System_Data_IDbCommand_System_Data_StatementType_System_Data_Common_DataTableMapping_" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.CreateRowUpdatedEvent(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping)">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.CreateRowUpdatedEvent.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_CreateRowUpdatedEvent_System_Data_DataRow_System_Data_IDbCommand_System_Data_StatementType_System_Data_Common_DataTableMapping_">CreateRowUpdatedEvent(DataRow, IDbCommand, StatementType, DataTableMapping)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.rowupdatedeventargs">RowUpdatedEventArgs</a> class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_CreateRowUpdatingEvent_System_Data_DataRow_System_Data_IDbCommand_System_Data_StatementType_System_Data_Common_DataTableMapping_" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.CreateRowUpdatingEvent(System.Data.DataRow,System.Data.IDbCommand,System.Data.StatementType,System.Data.Common.DataTableMapping)">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.CreateRowUpdatingEvent.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_CreateRowUpdatingEvent_System_Data_DataRow_System_Data_IDbCommand_System_Data_StatementType_System_Data_Common_DataTableMapping_">CreateRowUpdatingEvent(DataRow, IDbCommand, StatementType, DataTableMapping)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.rowupdatingeventargs">RowUpdatingEventArgs</a> class.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_ExecuteBatch" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.ExecuteBatch">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.ExecuteBatch.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_ExecuteBatch">ExecuteBatch()</a>
        </td>
        <td class="markdown level1 summary"><p>Once all AddToBatch are invoked (based on the Batch Size), this method is invoked.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_GetBatchedRecordsAffected_System_Int32_System_Int32__System_Exception__" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.GetBatchedRecordsAffected(System.Int32,System.Int32@,System.Exception@)">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.GetBatchedRecordsAffected.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_GetBatchedRecordsAffected_System_Int32_System_Int32__System_Exception__">GetBatchedRecordsAffected(int, out int, out Exception)</a>
        </td>
        <td class="markdown level1 summary"><p>Called to retrieve the records affected from a specific batched command,
first argument is the value that was returned by AddToBatch when it
was called for the command.
Default implementation always returns 1, derived classes override for otherwise
otherwise DbConcurrencyException will only be thrown if sum of all records in batch is 0.
return 0 to cause Update to throw DbConcurrencyException</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_InitializeBatching" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.InitializeBatching">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.InitializeBatching.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_InitializeBatching">InitializeBatching()</a>
        </td>
        <td class="markdown level1 summary"><p>Initialize Batching operation. Only get invoked when UpdateBatchSize &gt; 1.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataConnector_AdoNet_C1DataAdapterBase_1_TerminateBatching" data-uid="C1.DataConnector.AdoNet.C1DataAdapterBase`1.TerminateBatching">
          <a class="xref" href="../C1.AdoNet.CSV/C1.DataConnector.AdoNet.C1DataAdapterBase-1.TerminateBatching.html#C1_DataConnector_AdoNet_C1DataAdapterBase_1_TerminateBatching">TerminateBatching()</a>
        </td>
        <td class="markdown level1 summary"><p>When Batching is terminated, this method got invoked automatically.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
