DataView Klass

Definition

Representerar en databindbar, anpassad vy av en DataTable för sortering, filtrering, sökning, redigering och navigering. DataView Lagrar inte data, utan representerar i stället en ansluten vy av motsvarande DataTable. Ändringar av DataViewdata påverkar DataTable. Ändringar i DataTable's data påverkar alla DataViewsom är associerade med dem.

public ref class DataView : System::ComponentModel::MarshalByValueComponent, System::Collections::IList, System::ComponentModel::IBindingListView, System::ComponentModel::ISupportInitialize, System::ComponentModel::ISupportInitializeNotification, System::ComponentModel::ITypedList
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.IBindingListView, System.ComponentModel.ISupportInitialize, 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 ICollection
    interface IEnumerable
    interface IList
    interface IBindingList
    interface IBindingListView
    interface ISupportInitialize
    interface ISupportInitializeNotification
    interface 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
Public Class DataView
Inherits MarshalByValueComponent
Implements IBindingListView, IList, ISupportInitialize, ISupportInitializeNotification, 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
Arv
Implementeringar

Exempel

I följande exempel skapas en enda DataTable med en kolumn och fem rader. Två DataView objekt skapas och anges på var och RowStateFilter en för att visa olika vyer av tabelldata. Värdena skrivs sedan ut.

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

I följande exempel skapas en DataView onlinebeställning som sorteras efter total förfallen från en LINQ till DataSet-fråga:

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

Kommentarer

En viktig funktion i DataView är att tillåta databindning på både Windows Forms och webbformulär.

Dessutom kan en DataView anpassas för att presentera en delmängd data från DataTable. Med den här funktionen kan du ha två kontroller som är bundna till samma DataTable, men som visar olika versioner av data. En kontroll kan till exempel vara bunden till en DataView som visar alla rader i tabellen, och en andra kan konfigureras för att endast visa de rader som har tagits bort från DataTable. Den DataTable har också en DefaultView egenskap. Detta returnerar standardvärdet DataView för tabellen. Om du till exempel vill skapa en anpassad vy i tabellen anger du på RowFilter den DataView som returneras av DefaultView.

Om du vill skapa en filtrerad och sorterad vy över data anger du RowFilter egenskaperna och Sort . Använd sedan egenskapen Item[] för att returnera en enda DataRowView.

Du kan också lägga till och ta bort från uppsättningen rader med metoderna AddNew och Delete . När du använder dessa metoder RowStateFilter kan egenskapen ange att endast borttagna rader eller nya rader ska visas av DataView.

Note

Om du inte uttryckligen anger sorteringsvillkor för DataViewsorteras objekten DataRowView i DataView baserat på indexet för DataView-motsvarande DataRow i DataTable.RowsDataRowCollection.

LINQ till DataSet gör det möjligt för utvecklare att skapa komplexa, kraftfulla frågor via en DataSet med hjälp av LINQ. En LINQ till DataSet-fråga returnerar dock en uppräkning av DataRow objekt som inte är lätt att använda i ett bindningsscenario. DataView kan skapas från en LINQ till DataSet-fråga och tar på sig filtrerings- och sorteringsegenskaperna för den frågan. LINQ till DataSet utökar funktionerna DataView i genom att tillhandahålla LINQ-uttrycksbaserad filtrering och sortering, vilket möjliggör mycket mer komplexa och kraftfulla filtrerings- och sorteringsåtgärder än strängbaserad filtrering och sortering. Mer information finns i Databindning och LINQ till DataSet .

Konstruktorer

Name Description
DataView()

Initierar en ny instans av DataView klassen.

DataView(DataTable, String, String, DataViewRowState)

Initierar en ny instans av DataView klassen med angiven DataTable, RowFilter, Sortoch DataViewRowState.

DataView(DataTable)

Initierar en ny instans av DataView klassen med angiven DataTable.

Egenskaper

Name Description
AllowDelete

Hämtar eller anger ett värde som anger om borttagningar tillåts.

AllowEdit

Hämtar eller anger ett värde som anger om redigeringar tillåts.

AllowNew

Hämtar eller anger ett värde som anger om de nya raderna kan läggas till med hjälp AddNew() av metoden .

ApplyDefaultSort

Hämtar eller anger ett värde som anger om standardsortering ska användas. Standardsortering är (stigande) av alla primära nycklar som anges av PrimaryKey.

Container

Hämtar containern för komponenten.

(Ärvd från MarshalByValueComponent)
Count

Hämtar antalet poster i DataView efter RowFilter och RowStateFilter har tillämpats.

DataViewManager

Hämtar associerad DataViewManager med den här vyn.

DesignMode

Hämtar ett värde som anger om komponenten för närvarande är i designläge.

(Ärvd från MarshalByValueComponent)
Events

Hämtar listan över händelsehanterare som är kopplade till den här komponenten.

(Ärvd från MarshalByValueComponent)
IsInitialized

Hämtar ett värde som anger om komponenten initieras.

IsOpen

Hämtar ett värde som anger om datakällan för närvarande är öppen och projicerar vyer av data på DataTable.

Item[Int32]

Hämtar en rad med data från en angiven tabell.

RowFilter

Hämtar eller anger det uttryck som används för att filtrera vilka rader som visas i DataView.

RowStateFilter

Hämtar eller anger radtillståndsfiltret som används i DataView.

Site

Hämtar eller anger komponentens plats.

(Ärvd från MarshalByValueComponent)
Sort

Hämtar eller anger sorteringskolumnen eller kolumnerna och sorteringsordningen DataViewför .

Table

Hämtar eller anger källan DataTable.

Metoder

Name Description
AddNew()

Lägger till en ny rad i DataView.

BeginInit()

Startar initieringen av en DataView som används i ett formulär eller används av en annan komponent. Initieringen sker vid körning.

Close()

DataViewStänger .

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Inträffar efter att en DataColumnCollection har ändrats.

CopyTo(Array, Int32)

Kopierar objekt till en matris. Endast för webbformulärgränssnitt.

Delete(Int32)

Tar bort en rad i det angivna indexet.

Dispose()

Släpper alla resurser som används av MarshalByValueComponent.

(Ärvd från MarshalByValueComponent)
Dispose(Boolean)

Gör sig av med de resurser (förutom minne) som används av DataView objektet.

EndInit()

Avslutar initieringen av en DataView som används i ett formulär eller som används av en annan komponent. Initieringen sker vid körning.

Equals(DataView)

Avgör om de angivna DataView instanserna anses vara lika.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
Find(Object)

Söker efter en rad i det DataView angivna sorteringsnyckelvärdet.

Find(Object[])

Söker efter en rad i DataView av de angivna sorteringsnyckelvärdena.

FindRows(Object)

Returnerar en matris med DataRowView objekt vars kolumner matchar det angivna sorteringsnyckelvärdet.

FindRows(Object[])

Returnerar en matris med DataRowView objekt vars kolumner matchar det angivna sorteringsnyckelvärdet.

GetEnumerator()

Hämtar en uppräkning för den här DataView.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetService(Type)

Hämtar implementer för IServiceProvider.

(Ärvd från MarshalByValueComponent)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IndexListChanged(Object, ListChangedEventArgs)

Inträffar efter att en DataView har ändrats.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnListChanged(ListChangedEventArgs)

Genererar händelsen ListChanged .

Open()

Öppnar en DataView.

Reset()

Reserverad endast för internt bruk.

ToString()

Returnerar ett String som innehåller namnet på Component, om det finns. Den här metoden bör inte åsidosättas.

(Ärvd från MarshalByValueComponent)
ToTable()

Skapar och returnerar en ny DataTable baserat på rader i en befintlig DataView.

ToTable(Boolean, String[])

Skapar och returnerar en ny DataTable baserat på rader i en befintlig DataView.

ToTable(String, Boolean, String[])

Skapar och returnerar en ny DataTable baserat på rader i en befintlig DataView.

ToTable(String)

Skapar och returnerar en ny DataTable baserat på rader i en befintlig DataView.

UpdateIndex()

Reserverad endast för internt bruk.

UpdateIndex(Boolean)

Reserverad endast för internt bruk.

Händelser

Name Description
Disposed

Lägger till en händelsehanterare för att Disposed lyssna på händelsen på komponenten.

(Ärvd från MarshalByValueComponent)
Initialized

Inträffar när initieringen av DataView är klar.

ListChanged

Inträffar när listan som hanteras av DataView ändringarna.

Explicita gränssnittsimplementeringar

Name Description
IBindingList.AddIndex(PropertyDescriptor)

En beskrivning av den här medlemmen finns i AddIndex(PropertyDescriptor).

IBindingList.AddNew()

En beskrivning av den här medlemmen finns i AddNew().

IBindingList.AllowEdit

En beskrivning av den här medlemmen finns i AllowEdit.

IBindingList.AllowNew

En beskrivning av den här medlemmen finns i AllowNew.

IBindingList.AllowRemove

En beskrivning av den här medlemmen finns i AllowRemove.

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

En beskrivning av den här medlemmen finns i ApplySort(PropertyDescriptor, ListSortDirection).

IBindingList.Find(PropertyDescriptor, Object)

En beskrivning av den här medlemmen finns i Find(PropertyDescriptor, Object).

IBindingList.IsSorted

En beskrivning av den här medlemmen finns i IsSorted.

IBindingList.RemoveIndex(PropertyDescriptor)

En beskrivning av den här medlemmen finns i RemoveIndex(PropertyDescriptor).

IBindingList.RemoveSort()

En beskrivning av den här medlemmen finns i RemoveSort().

IBindingList.SortDirection

En beskrivning av den här medlemmen finns i SortDirection.

IBindingList.SortProperty

En beskrivning av den här medlemmen finns i SortProperty.

IBindingList.SupportsChangeNotification

En beskrivning av den här medlemmen finns i SupportsChangeNotification.

IBindingList.SupportsSearching

En beskrivning av den här medlemmen finns i SupportsSearching.

IBindingList.SupportsSorting

En beskrivning av den här medlemmen finns i SupportsSorting.

IBindingListView.ApplySort(ListSortDescriptionCollection)

En beskrivning av den här medlemmen finns i ApplySort(ListSortDescriptionCollection).

IBindingListView.Filter

En beskrivning av den här medlemmen finns i Filter.

IBindingListView.RemoveFilter()

En beskrivning av den här medlemmen finns i RemoveFilter().

IBindingListView.SortDescriptions

En beskrivning av den här medlemmen finns i SortDescriptions.

IBindingListView.SupportsAdvancedSorting

En beskrivning av den här medlemmen finns i SupportsAdvancedSorting.

IBindingListView.SupportsFiltering

En beskrivning av den här medlemmen finns i SupportsFiltering.

ICollection.IsSynchronized

En beskrivning av den här medlemmen finns i IsSynchronized.

ICollection.SyncRoot

En beskrivning av den här medlemmen finns i SyncRoot.

IList.Add(Object)

En beskrivning av den här medlemmen finns i Add(Object).

IList.Clear()

En beskrivning av den här medlemmen finns i Clear().

IList.Contains(Object)

En beskrivning av den här medlemmen finns i Contains(Object).

IList.IndexOf(Object)

En beskrivning av den här medlemmen finns i IndexOf(Object).

IList.Insert(Int32, Object)

En beskrivning av den här medlemmen finns i Insert(Int32, Object).

IList.IsFixedSize

En beskrivning av den här medlemmen finns i IsFixedSize.

IList.IsReadOnly

En beskrivning av den här medlemmen finns i IsReadOnly.

IList.Item[Int32]

En beskrivning av den här medlemmen finns i Item[Int32].

IList.Remove(Object)

En beskrivning av den här medlemmen finns i Remove(Object).

IList.RemoveAt(Int32)

En beskrivning av den här medlemmen finns i RemoveAt(Int32).

ITypedList.GetItemProperties(PropertyDescriptor[])

En beskrivning av den här medlemmen finns i GetItemProperties(PropertyDescriptor[]).

ITypedList.GetListName(PropertyDescriptor[])

En beskrivning av den här medlemmen finns i GetListName(PropertyDescriptor[]).

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

CreateAsyncScope(IServiceProvider)

Skapar en ny AsyncServiceScope som kan användas för att lösa begränsade tjänster.

CreateScope(IServiceProvider)

Skapar en ny IServiceScope som kan användas för att lösa begränsade tjänster.

GetKeyedService(IServiceProvider, Type, Object)

Hämta tjänst av typen serviceType från IServiceProvider.

GetKeyedService<T>(IServiceProvider, Object)

Hämta tjänst av typen T från IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Hämta en uppräkning av tjänster av typen serviceType från IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Hämta en uppräkning av tjänster av typen T från IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Hämta tjänst av typen serviceType från IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Hämta tjänst av typen T från IServiceProvider.

GetRequiredService(IServiceProvider, Type)

Hämta tjänst av typen serviceType från IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Hämta tjänst av typen T från IServiceProvider.

GetService<T>(IServiceProvider)

Hämta tjänst av typen T från IServiceProvider.

GetServices(IServiceProvider, Type)

Hämta en uppräkning av tjänster av typen serviceType från IServiceProvider.

GetServices<T>(IServiceProvider)

Hämta en uppräkning av tjänster av typen T från IServiceProvider.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Trådsäkerhet

Den här typen är säker för flertrådade läsåtgärder. Du måste synkronisera alla skrivåtgärder.

Se även