DataView Klas

Definitie

Vertegenwoordigt een gegevensbindbare, aangepaste weergave van een DataTable voor sorteren, filteren, zoeken, bewerken en navigatie. De DataView gegevens worden niet opgeslagen, maar vertegenwoordigt in plaats daarvan een verbonden weergave van de bijbehorende DataTable. Wijzigingen in de DataViewgegevens zijn van invloed op de DataTable. Wijzigingen in de DataTablegegevens zijn van invloed op alle DataViewgekoppelde gegevens.

public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingList, System::ComponentModel::ISupportInitialize, System::ComponentModel::ITypedList
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingList, System.ComponentModel.ISupportInitialize, System.ComponentModel.ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.Collections.IList, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
public class DataView : System.ComponentModel.MarshalByValueComponent, System.ComponentModel.IBindingListView, System.ComponentModel.ISupportInitializeNotification, System.ComponentModel.ITypedList
type DataView = class
    inherit MarshalByValueComponent
    interface IBindingList
    interface IList
    interface ICollection
    interface IEnumerable
    interface ITypedList
    interface ISupportInitialize
type DataView = class
    inherit MarshalByValueComponent
    interface IBindingListView
    interface IBindingList
    interface IList
    interface ICollection
    interface IEnumerable
    interface ITypedList
    interface ISupportInitializeNotification
    interface ISupportInitialize
type DataView = class
    inherit MarshalByValueComponent
    interface ICollection
    interface IEnumerable
    interface IList
    interface IBindingList
    interface IBindingListView
    interface ISupportInitialize
    interface ISupportInitializeNotification
    interface ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingList, IList, ISupportInitialize, ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, IList, ISupportInitializeNotification, ITypedList
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, ISupportInitializeNotification, ITypedList
Overname
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt één met DataTable één kolom en vijf rijen gemaakt. Er worden twee DataView objecten gemaakt en de RowStateFilter objecten worden op elk object ingesteld om verschillende weergaven van de tabelgegevens weer te geven. De waarden worden vervolgens afgedrukt.

using System;
using System.Xml;
using System.Data;
using System.Data.Common;
using System.Windows.Forms;

public class Form1: Form
{
    protected DataSet DataSet1;
    protected DataGrid dataGrid1;

    private void DemonstrateDataView()
    {
        // Create one DataTable with one column.
        DataTable table = new DataTable("table");
        DataColumn colItem = new DataColumn("item",
            Type.GetType("System.String"));
        table.Columns.Add(colItem);

        // Add five items.
        DataRow NewRow;
        for(int i = 0; i <5; i++)
        {
            NewRow = table.NewRow();
            NewRow["item"] = "Item " + i;
            table.Rows.Add(NewRow);
        }
        // Change the values in the table.
        table.AcceptChanges();
        table.Rows[0]["item"]="cat";
        table.Rows[1]["item"] = "dog";

        // Create two DataView objects with the same table.
        DataView firstView = new DataView(table);
        DataView secondView = new DataView(table);

        // Print current table values.
        PrintTableOrView(table,"Current Values in Table");

        // Set first DataView to show only modified
        // versions of original rows.
        firstView.RowStateFilter=DataViewRowState.ModifiedOriginal;

        // Print values.
        PrintTableOrView(firstView,"First DataView: ModifiedOriginal");

        // Add one New row to the second view.
        DataRowView rowView;
        rowView=secondView.AddNew();
        rowView["item"] = "fish";

        // Set second DataView to show modified versions of
        // current rows, or New rows.
        secondView.RowStateFilter=DataViewRowState.ModifiedCurrent
            | DataViewRowState.Added;
        // Print modified and Added rows.
        PrintTableOrView(secondView,
            "Second DataView: ModifiedCurrent | Added");
    }

    private void PrintTableOrView(DataTable table, string label)
    {
        // This function prints values in the table or DataView.
        Console.WriteLine("\n" + label);
        for(int i = 0; i<table.Rows.Count;i++)
        {
            Console.WriteLine(table.Rows[i]["item"]);
        }
        Console.WriteLine();
    }

    private void PrintTableOrView(DataView view, string label)
    {

        // This overload prints values in the table or DataView.
        Console.WriteLine("\n" + label);
        for(int i = 0; i<view.Count;i++)
        {
            Console.WriteLine(view[i]["item"]);
        }
        Console.WriteLine();
    }
}
Private Sub DemonstrateDataView()
    ' Create one DataTable with one column.
    Dim table As New DataTable("table")
    Dim colItem As New DataColumn("item", _
        Type.GetType("System.String"))
    table.Columns.Add(colItem)

    ' Add five items.
    Dim NewRow As DataRow
    Dim i As Integer
    For i = 0 To 4
    
    NewRow = table.NewRow()
    NewRow("item") = "Item " & i
    table.Rows.Add(NewRow)
    Next
    table.AcceptChanges()

    ' Create two DataView objects with the same table.
    Dim firstView As New DataView(table)
    Dim secondView As New DataView(table)
    
    ' Change the values in the table.
    table.Rows(0)("item") = "cat"
    table.Rows(1)("item") = "dog"
    
    ' Print current table values.
    PrintTableOrView(table, "Current Values in Table")
        
    ' Set first DataView to show only modified versions of original rows.
    firstView.RowStateFilter = DataViewRowState.ModifiedOriginal

    ' Print values.    
    PrintTableOrView(firstView, "First DataView: ModifiedOriginal")

    ' Add one New row to the second view.
    Dim rowView As DataRowView
    rowView = secondView.AddNew()
    rowView("item") = "fish"
    ' Set second DataView to show modified versions of 
    ' current rows, or New rows.
    secondView.RowStateFilter = DataViewRowState.ModifiedCurrent _
        Or DataViewRowState.Added
    ' Print modified and Added rows.
    PrintTableOrView(secondView, _
        "Second DataView: ModifiedCurrent or Added")
End Sub
    
Overloads Private Sub PrintTableOrView( _
    ByVal view As DataView, ByVal label As String)
    Console.WriteLine(label)
    Dim i As Integer
    For i = 0 To view.count - 1
    
    Console.WriteLine(view(i)("item"))
    Next
    Console.WriteLine()
End Sub
    
Overloads Private Sub PrintTableOrView( _
    ByVal table As DataTable, ByVal label As String)
    Console.WriteLine(label)
    Dim i As Integer
    For i = 0 To table.Rows.Count - 1
    Console.WriteLine(table.Rows(i)("item"))
    Next
    Console.WriteLine()
End Sub

In het volgende voorbeeld wordt een DataView reeks onlineorders gemaakt die zijn besteld op basis van het totale bedrag van een LINQ naar een DataSet-query:

DataTable orders = dataSet.Tables["SalesOrderHeader"];

EnumerableRowCollection<DataRow> query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    orderby order.Field<decimal>("TotalDue")
    select order;

DataView view = query.AsDataView();

bindingSource1.DataSource = view;
Dim orders As DataTable = dataSet.Tables("SalesOrderHeader")

Dim query = _
    From order In orders.AsEnumerable() _
    Where order.Field(Of Boolean)("OnlineOrderFlag") = True _
    Order By order.Field(Of Decimal)("TotalDue") _
    Select order

Dim view As DataView = query.AsDataView()
bindingSource1.DataSource = view

Opmerkingen

Een belangrijke functie van de DataView is het toestaan van gegevensbinding op zowel Windows Forms als webformulieren.

Daarnaast kan een DataView sjabloon worden aangepast om een subset met gegevens uit de DataTable. Met deze mogelijkheid kunt u twee besturingselementen hebben die aan hetzelfde DataTablezijn gebonden, maar die verschillende versies van de gegevens weergeven. Eén besturingselement kan bijvoorbeeld zijn gebonden aan een DataView besturingselement waarin alle rijen in de tabel worden weergegeven en een tweede kan worden geconfigureerd om alleen de rijen weer te geven die uit de DataTabletabel zijn verwijderd. De DataTable accommodatie heeft ook een DefaultView accommodatie. Hiermee wordt de standaardwaarde DataView voor de tabel geretourneerd. Als u bijvoorbeeld een aangepaste weergave in de tabel wilt maken, stelt u de RowFilter weergave in op de DataView geretourneerde weergave.DefaultView

Als u een gefilterde en gesorteerde weergave van gegevens wilt maken, stelt u de RowFilter en Sort eigenschappen in. Gebruik vervolgens de Item[] eigenschap om één DataRowViewte retourneren.

U kunt ook de set rijen toevoegen en verwijderen met behulp van de AddNew en Delete methoden. Wanneer u deze methoden gebruikt, kan de RowStateFilter eigenschap zo instellen dat alleen verwijderde rijen of nieuwe rijen worden weergegeven door de DataView.

Note

Als u niet expliciet sorteercriteria opgeeft DataView, worden de DataRowView objecten in DataView gesorteerd op basis van de index van DataView die overeenkomt in DataRow de DataTable.RowsDataRowCollection.

MET LINQ naar DataSet kunnen ontwikkelaars complexe, krachtige query's maken via een DataSet met behulp van LINQ. Een LINQ naar DataSet-query retourneert echter een opsomming van DataRow objecten. Dit is echter niet eenvoudig te gebruiken in een bindingsscenario. DataView kan worden gemaakt van een LINQ naar DataSet-query en neemt de filter- en sorteerkenmerken van die query over. LINQ naar DataSet breidt de functionaliteit van de DataView functie uit door filteren en sorteren op basis van LINQ-expressies te bieden, wat veel complexere en krachtige filter- en sorteerbewerkingen mogelijk maakt dan filteren en sorteren op basis van tekenreeksen. Zie Gegevensbinding en LINQ naar DataSet voor meer informatie.

Constructors

Name Description
DataView()

Initialiseert een nieuw exemplaar van de DataView klasse.

DataView(DataTable, String, String, DataViewRowState)

Initialiseert een nieuw exemplaar van de DataView klasse met de opgegeven DataTable, RowFilteren SortDataViewRowState.

DataView(DataTable)

Initialiseert een nieuw exemplaar van de DataView klasse met de opgegeven DataTable.

Eigenschappen

Name Description
AllowDelete

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of verwijderingen zijn toegestaan.

AllowEdit

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of bewerkingen zijn toegestaan.

AllowNew

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de nieuwe rijen kunnen worden toegevoegd met behulp van de AddNew() methode.

ApplyDefaultSort

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de standaardsorteerd moet worden gebruikt. De standaardsorteerding is (oplopend) op alle primaire sleutels zoals opgegeven door PrimaryKey.

Container

Hiermee haalt u de container voor het onderdeel op.

(Overgenomen van MarshalByValueComponent)
Count

Hiermee wordt het aantal records in de DataView erna RowFilter en RowStateFilter toegepast.

DataViewManager

Hiermee haalt u de DataViewManager gekoppelde weergave op.

DesignMode

Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel zich momenteel in de ontwerpmodus bevindt.

(Overgenomen van MarshalByValueComponent)
Events

Hiermee haalt u de lijst met gebeurtenis-handlers op die aan dit onderdeel zijn gekoppeld.

(Overgenomen van MarshalByValueComponent)
IsInitialized

Hiermee wordt een waarde opgehaald die aangeeft of het onderdeel is geïnitialiseerd.

IsOpen

Hiermee wordt een waarde opgehaald die aangeeft of de gegevensbron momenteel is geopend en weergaven van gegevens op de DataTablegegevens projecteert.

Item[Int32]

Hiermee haalt u een rij met gegevens op uit een opgegeven tabel.

RowFilter

Hiermee haalt u de expressie op die wordt gebruikt om te filteren welke rijen worden weergegeven in de DataView.

RowStateFilter

Hiermee haalt u het rijstatusfilter op dat wordt gebruikt in de DataView.

Site

Hiermee haalt u de site van het onderdeel op of stelt u deze in.

(Overgenomen van MarshalByValueComponent)
Sort

Hiermee haalt u de sorteerkolom of -kolommen op of stelt u deze in en sorteervolgorde voor de DataView.

Table

Hiermee haalt u de bron DataTableop of stelt u deze in.

Methoden

Name Description
AddNew()

Voegt een nieuwe rij toe aan de DataView.

BeginInit()

Hiermee start u de initialisatie van een DataView formulier dat wordt gebruikt op een formulier of wordt gebruikt door een ander onderdeel. De initialisatie vindt plaats tijdens runtime.

Close()

Hiermee sluit u de DataView.

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Treedt op nadat een DataColumnCollection is gewijzigd.

CopyTo(Array, Int32)

Hiermee kopieert u items naar een matrix. Alleen voor webformulierinterfaces.

Delete(Int32)

Hiermee verwijdert u een rij in de opgegeven index.

Dispose()

Alle resources die worden gebruikt door de MarshalByValueComponent.

(Overgenomen van MarshalByValueComponent)
Dispose(Boolean)

Hiermee verwijdert u de resources (anders dan het geheugen) die door het DataView object worden gebruikt.

EndInit()

Hiermee beëindigt u de initialisatie van een DataView formulier dat wordt gebruikt in een formulier of wordt gebruikt door een ander onderdeel. De initialisatie vindt plaats tijdens runtime.

Equals(DataView)

Bepaalt of de opgegeven DataView exemplaren als gelijk worden beschouwd.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Find(Object)

Hiermee zoekt u een rij in de DataView op de opgegeven sorteersleutelwaarde.

Find(Object[])

Hiermee zoekt u een rij in de DataView op de opgegeven sorteersleutelwaarden.

FindRows(Object)

Retourneert een matrix met DataRowView objecten waarvan de kolommen overeenkomen met de opgegeven sorteersleutelwaarde.

FindRows(Object[])

Retourneert een matrix met DataRowView objecten waarvan de kolommen overeenkomen met de opgegeven sorteersleutelwaarde.

GetEnumerator()

Hiermee haalt u een enumerator op.DataView

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetService(Type)

Haalt de implementeerfunctie van de IServiceProvider.

(Overgenomen van MarshalByValueComponent)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IndexListChanged(Object, ListChangedEventArgs)

Treedt op nadat een DataView is gewijzigd.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnListChanged(ListChangedEventArgs)

Hiermee wordt de ListChanged gebeurtenis gegenereerd.

Open()

Hiermee opent u een DataView.

Reset()

Alleen gereserveerd voor intern gebruik.

ToString()

Retourneert een String met de naam van de Component, indien van toepassing. Deze methode mag niet worden overschreven.

(Overgenomen van MarshalByValueComponent)
ToTable()

Hiermee maakt en retourneert u een nieuwe DataTable op basis van rijen in een bestaande DataView.

ToTable(Boolean, String[])

Hiermee maakt en retourneert u een nieuwe DataTable op basis van rijen in een bestaande DataView.

ToTable(String, Boolean, String[])

Hiermee maakt en retourneert u een nieuwe DataTable op basis van rijen in een bestaande DataView.

ToTable(String)

Hiermee maakt en retourneert u een nieuwe DataTable op basis van rijen in een bestaande DataView.

UpdateIndex()

Alleen gereserveerd voor intern gebruik.

UpdateIndex(Boolean)

Alleen gereserveerd voor intern gebruik.

gebeurtenis

Name Description
Disposed

Voegt een gebeurtenis-handler toe om naar de Disposed gebeurtenis in het onderdeel te luisteren.

(Overgenomen van MarshalByValueComponent)
Initialized

Vindt plaats wanneer de initialisatie van de bewerking DataView is voltooid.

ListChanged

Vindt plaats wanneer de lijst wordt beheerd door de DataView wijzigingen.

Expliciete interface-implementaties

Name Description
IBindingList.AddIndex(PropertyDescriptor)

Zie voor een beschrijving van dit lid AddIndex(PropertyDescriptor).

IBindingList.AddNew()

Zie voor een beschrijving van dit lid AddNew().

IBindingList.AllowEdit

Zie voor een beschrijving van dit lid AllowEdit.

IBindingList.AllowNew

Zie voor een beschrijving van dit lid AllowNew.

IBindingList.AllowRemove

Zie voor een beschrijving van dit lid AllowRemove.

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Zie voor een beschrijving van dit lid ApplySort(PropertyDescriptor, ListSortDirection).

IBindingList.Find(PropertyDescriptor, Object)

Zie voor een beschrijving van dit lid Find(PropertyDescriptor, Object).

IBindingList.IsSorted

Zie voor een beschrijving van dit lid IsSorted.

IBindingList.RemoveIndex(PropertyDescriptor)

Zie voor een beschrijving van dit lid RemoveIndex(PropertyDescriptor).

IBindingList.RemoveSort()

Zie voor een beschrijving van dit lid RemoveSort().

IBindingList.SortDirection

Zie voor een beschrijving van dit lid SortDirection.

IBindingList.SortProperty

Zie voor een beschrijving van dit lid SortProperty.

IBindingList.SupportsChangeNotification

Zie voor een beschrijving van dit lid SupportsChangeNotification.

IBindingList.SupportsSearching

Zie voor een beschrijving van dit lid SupportsSearching.

IBindingList.SupportsSorting

Zie voor een beschrijving van dit lid SupportsSorting.

IBindingListView.ApplySort(ListSortDescriptionCollection)

Zie voor een beschrijving van dit lid ApplySort(ListSortDescriptionCollection).

IBindingListView.Filter

Zie voor een beschrijving van dit lid Filter.

IBindingListView.RemoveFilter()

Zie voor een beschrijving van dit lid RemoveFilter().

IBindingListView.SortDescriptions

Zie voor een beschrijving van dit lid SortDescriptions.

IBindingListView.SupportsAdvancedSorting

Zie voor een beschrijving van dit lid SupportsAdvancedSorting.

IBindingListView.SupportsFiltering

Zie voor een beschrijving van dit lid SupportsFiltering.

ICollection.IsSynchronized

Zie voor een beschrijving van dit lid IsSynchronized.

ICollection.SyncRoot

Zie voor een beschrijving van dit lid SyncRoot.

IList.Add(Object)

Zie voor een beschrijving van dit lid Add(Object).

IList.Clear()

Zie voor een beschrijving van dit lid Clear().

IList.Contains(Object)

Zie voor een beschrijving van dit lid Contains(Object).

IList.IndexOf(Object)

Zie voor een beschrijving van dit lid IndexOf(Object).

IList.Insert(Int32, Object)

Zie voor een beschrijving van dit lid Insert(Int32, Object).

IList.IsFixedSize

Zie voor een beschrijving van dit lid IsFixedSize.

IList.IsReadOnly

Zie voor een beschrijving van dit lid IsReadOnly.

IList.Item[Int32]

Zie voor een beschrijving van dit lid Item[Int32].

IList.Remove(Object)

Zie voor een beschrijving van dit lid Remove(Object).

IList.RemoveAt(Int32)

Zie voor een beschrijving van dit lid RemoveAt(Int32).

ITypedList.GetItemProperties(PropertyDescriptor[])

Zie voor een beschrijving van dit lid GetItemProperties(PropertyDescriptor[]).

ITypedList.GetListName(PropertyDescriptor[])

Zie voor een beschrijving van dit lid GetListName(PropertyDescriptor[]).

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op

Veiligheid thread

Dit type is veilig voor leesbewerkingen met meerdere leesbewerkingen. U moet schrijfbewerkingen synchroniseren.

Zie ook