# C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1" class="text-break">C1AdoNetCursorDataCollection&lt;T&gt; Class
</h1>
  <div class="markdown level0 summary"><p>Cursor collection whose data is extracted from a Ado.Net <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.data.common.dbconnection">DbConnection</a>.</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="../C1.DataCollection/C1.DataCollection.C1DataCollectionBase-1.html">C1DataCollectionBase</a>&lt;T&gt;</div>
    <div class="level2"><a class="xref" href="../C1.DataCollection/C1.DataCollection.C1CursorDataCollection-2.html">C1CursorDataCollection</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>&gt;</div>
    <div class="level3"><span class="xref">C1AdoNetCursorDataCollection&lt;T&gt;</span></div>
      <div class="level4"><a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection.html">C1AdoNetCursorDataCollection</a></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.IDataCollection-1.html">IDataCollection</a>&lt;T&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist-1">IReadOnlyList</a>&lt;T&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlycollection-1">IReadOnlyCollection</a>&lt;T&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.ienumerable">IEnumerable</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.specialized.inotifycollectionchanged">INotifyCollectionChanged</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportIndexing-1.html">ISupportIndexing</a>&lt;T&gt;</div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.componentmodel.inotifypropertychanged">INotifyPropertyChanged</a></div>
    <div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportVirtualization.html">ISupportVirtualization</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportConnection.html">ISupportConnection</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportIncrementalLoading.html">ISupportIncrementalLoading</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportRefreshing.html">ISupportRefreshing</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportSorting.html">ISupportSorting</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportFiltering.html">ISupportFiltering</a></div>
    <div><a class="xref" href="../C1.DataCollection/C1.DataCollection.ISupportEditing-1.html">ISupportEditing</a>&lt;T&gt;</div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.DataCollection.AdoNet.html">C1.DataCollection.AdoNet</a></h6>
  <h6><strong>Assembly</strong>: C1.DataCollection.AdoNet.dll</h6>
  <h5 id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class C1AdoNetCursorDataCollection&lt;T&gt; : C1CursorDataCollection&lt;T, bool&gt;, IDataCollection&lt;T&gt;, IReadOnlyList&lt;T&gt;, IReadOnlyCollection&lt;T&gt;, IEnumerable&lt;T&gt;, IEnumerable, INotifyCollectionChanged, ISupportIndexing&lt;T&gt;, INotifyPropertyChanged, IDisposable, ISupportVirtualization, ISupportConnection, ISupportIncrementalLoading, ISupportRefreshing, ISupportSorting, ISupportFiltering, ISupportEditing&lt;T&gt; where T : class?, new()</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class C1AdoNetCursorDataCollection(Of T As {Class, New})
    Inherits C1CursorDataCollection(Of T, Boolean)
    Implements IDataCollection(Of T), IReadOnlyList(Of T), IReadOnlyCollection(Of T), IEnumerable(Of T), IEnumerable, INotifyCollectionChanged, ISupportIndexing(Of T), INotifyPropertyChanged, IDisposable, ISupportVirtualization, ISupportConnection, ISupportIncrementalLoading, ISupportRefreshing, ISupportSorting, ISupportFiltering, ISupportEditing(Of T)</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">T</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_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1__ctor_System_Data_Common_DbConnection_System_String_System_Collections_Generic_IEnumerable_System_String__System_Int32_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.#ctor(System.Data.Common.DbConnection,System.String,System.Collections.Generic.IEnumerable{System.String},System.Int32)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.-ctor.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1__ctor_System_Data_Common_DbConnection_System_String_System_Collections_Generic_IEnumerable_System_String__System_Int32_">C1AdoNetCursorDataCollection(DbConnection, string, IEnumerable&lt;string&gt;?, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.html">C1AdoNetCursorDataCollection&lt;T&gt;</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_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Connection" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.Connection">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.Connection.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Connection">Connection</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the connection used to get the data.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Fields" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.Fields">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.Fields.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Fields">Fields</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the fields that are projected in this collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Item_System_Int32_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.Item(System.Int32)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.Item.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_Item_System_Int32_">this[int]</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the element at the specified index in the read-only list.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_PageSize" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.PageSize">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.PageSize.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_PageSize">PageSize</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the size of the page.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_TableName" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.TableName">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.TableName.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_TableName">TableName</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the name of the table the collection gets the data from.</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_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanFilter_C1_DataCollection_FilterExpression_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.CanFilter(C1.DataCollection.FilterExpression)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.CanFilter.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanFilter_C1_DataCollection_FilterExpression_">CanFilter(FilterExpression?)</a>
        </td>
        <td class="markdown level1 summary"><p>Returns whether the collection is able to filter the specified <code class="paramref">filterExpression</code>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanInsert_System_Int32__0_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.CanInsert(System.Int32,`0)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.CanInsert.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanInsert_System_Int32__0_">CanInsert(int, T)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether a new item can be inserted in the collection at the specified <code class="paramref">index</code>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanRemove_System_Int32_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.CanRemove(System.Int32)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.CanRemove.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanRemove_System_Int32_">CanRemove(int)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether the item at the specified <code class="paramref">index</code> can be removed from the collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanReplace_System_Int32__0_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.CanReplace(System.Int32,`0)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.CanReplace.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanReplace_System_Int32__0_">CanReplace(int, T)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines whether the item at the specified <code class="paramref">index</code> can be replaced in the collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanSort_C1_DataCollection_SortDescription___" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.CanSort(C1.DataCollection.SortDescription[])">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.CanSort.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_CanSort_C1_DataCollection_SortDescription___">CanSort(params SortDescription[])</a>
        </td>
        <td class="markdown level1 summary"><p>Returns whether the collection is able to sort the specified <code class="paramref">sortDescriptions</code>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_ConnectAsyncOverride_System_Threading_CancellationToken_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.ConnectAsyncOverride(System.Threading.CancellationToken)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.ConnectAsyncOverride.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_ConnectAsyncOverride_System_Threading_CancellationToken_">ConnectAsyncOverride(CancellationToken)</a>
        </td>
        <td class="markdown level1 summary"><p>When overridden, this method is used to initialize the collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_DetermineItemType_System_Data_Common_DbDataReader_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.DetermineItemType(System.Data.Common.DbDataReader)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.DetermineItemType.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_DetermineItemType_System_Data_Common_DbDataReader_">DetermineItemType(DbDataReader)</a>
        </td>
        <td class="markdown level1 summary"><p>Determines the type of the items.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_GetPageAsync_System_Int32_System_Boolean_System_Nullable_System_Int32__System_Collections_Generic_IReadOnlyList_C1_DataCollection_SortDescription__C1_DataCollection_FilterExpression_System_Threading_CancellationToken_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.GetPageAsync(System.Int32,System.Boolean,System.Nullable{System.Int32},System.Collections.Generic.IReadOnlyList{C1.DataCollection.SortDescription},C1.DataCollection.FilterExpression,System.Threading.CancellationToken)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.GetPageAsync.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_GetPageAsync_System_Int32_System_Boolean_System_Nullable_System_Int32__System_Collections_Generic_IReadOnlyList_C1_DataCollection_SortDescription__C1_DataCollection_FilterExpression_System_Threading_CancellationToken_">GetPageAsync(int, bool, int?, IReadOnlyList&lt;SortDescription&gt;?, FilterExpression?, CancellationToken)</a>
        </td>
        <td class="markdown level1 summary"><p>When overridden in an inherited class it returns the items in the page as well as a token to the next page.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_InsertAsyncOverride_System_Int32__0_System_Threading_CancellationToken_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.InsertAsyncOverride(System.Int32,`0,System.Threading.CancellationToken)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.InsertAsyncOverride.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_InsertAsyncOverride_System_Int32__0_System_Threading_CancellationToken_">InsertAsyncOverride(int, T, CancellationToken)</a>
        </td>
        <td class="markdown level1 summary"><p>This method is called when an item is inserted in the collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_RemoveAsyncOverride_System_Int32_System_Threading_CancellationToken_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.RemoveAsyncOverride(System.Int32,System.Threading.CancellationToken)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.RemoveAsyncOverride.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_RemoveAsyncOverride_System_Int32_System_Threading_CancellationToken_">RemoveAsyncOverride(int, CancellationToken)</a>
        </td>
        <td class="markdown level1 summary"><p>This method is called when an item is removed from the collection.</p>
</td>
      </tr>
      <tr>
        <td id="C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_ReplaceAsyncOverride_System_Int32__0_System_Threading_CancellationToken_" data-uid="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection`1.ReplaceAsyncOverride(System.Int32,`0,System.Threading.CancellationToken)">
          <a class="xref" href="C1.DataCollection.AdoNet.C1AdoNetCursorDataCollection-1.ReplaceAsyncOverride.html#C1_DataCollection_AdoNet_C1AdoNetCursorDataCollection_1_ReplaceAsyncOverride_System_Int32__0_System_Threading_CancellationToken_">ReplaceAsyncOverride(int, T, CancellationToken)</a>
        </td>
        <td class="markdown level1 summary"><p>This method is called when an item is replaced in the collection.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
