DataView Osztály

Definíció

A rendezéshez, szűréshez, kereséshez, szerkesztéshez és navigáláshoz használható, adatkötésre alkalmas, testre szabott nézetet DataTable jelöl. A DataView rendszer nem tárol adatokat, hanem a megfelelő DataTablecsatlakoztatott nézetet jelöli. DataViewAz adatok módosítása hatással lesz a DataTable. Az adatok módosítása hatással lesz a DataTablehozzá társított összes DataViewadatra.

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
Öröklődés
Megvalósítás

Példák

Az alábbi példa egyetlen DataTable oszlopot és öt sort hoz létre. Két DataView objektum jön létre, és mindegyiken RowStateFilter a táblaadatok különböző nézetei jelennek meg. Ezután a rendszer kinyomtatja az értékeket.

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

Az alábbi példa létrehoz egy DataView online rendelést, amely egy LINQ-ból dataSet-lekérdezésbe esedékes összeg szerint van rendezve:

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

Megjegyzések

A DataView egyik fő funkciója az adatkötés engedélyezése mind a Windows Forms, mind a webes űrlapokon.

Emellett testre is szabható, DataView hogy a rendszer megjelenítse az adatok egy részhalmazát a DataTable. Ez a funkció lehetővé teszi, hogy két vezérlő ugyanahhoz DataTablea vezérlőhöz legyen kötve, de az adatok különböző verzióit jelenítik meg. Előfordulhat például, hogy egy vezérlő olyanhoz DataView van kötve, amely a tábla összes sorát megjeleníti, egy másodperc pedig úgy is konfigurálható, hogy csak a törölt sorokat jelenítse meg.DataTable Az DataTable is rendelkezik egy DefaultView tulajdonság. Ez a tábla alapértelmezett értékét DataView adja vissza. Ha például egyéni nézetet szeretne létrehozni a táblában, állítsa be a RowFilterDataView függvény által visszaadott DefaultViewnézetet.

Az adatok szűrt és rendezett nézetének létrehozásához állítsa be a tulajdonságokat és RowFilter a Sort tulajdonságokat. Ezután a Item[] tulajdonság használatával adjon vissza egyetlen DataRowViewértéket.

A sorok készletéből a metódusok és a AddNew metódusok használatával is hozzáadhat és Delete törölhet. Ha ezeket a metódusokat használja, a RowStateFilter tulajdonság beállíthatja, hogy csak törölt sorokat vagy új sorokat jelenítsen meg a DataViewprogram.

Note

Ha nem ad meg explicit módon rendezési feltételeket DataView, a DataRowView benne lévő DataView objektumok a DataView megfelelőjének DataRow indexe alapján lesznek rendezve a DataTable.RowsDataRowCollection.

A LINQ to DataSet lehetővé teszi a fejlesztők számára, hogy összetett, hatékony lekérdezéseket hozzanak létre a DataSet LINQ használatával. A LINQ to DataSet lekérdezések azonban az objektumok számbavételét DataRow adja vissza, ami kötési forgatókönyvekben nem könnyen használható. DataView LINQ-ból Adatkészlet-lekérdezésbe hozható létre, és a lekérdezés szűrési és rendezési jellemzőit veszi át. A LINQ to DataSet a LINQ kifejezésalapú szűréssel és rendezéssel bővíti a DataView funkcióját, ami sokkal összetettebb és hatékonyabb szűrési és rendezési műveleteket tesz lehetővé, mint a sztringalapú szűrés és rendezés. További információ: Adatkötés és LINQ to DataSet .

Konstruktorok

Name Description
DataView()

Inicializálja a DataView osztály új példányát.

DataView(DataTable, String, String, DataViewRowState)

Inicializálja az osztály új példányát a DataView megadott DataTable, RowFilter, Sortés DataViewRowState.

DataView(DataTable)

Inicializálja az osztály új példányát DataView a megadott DataTable.

Tulajdonságok

Name Description
AllowDelete

Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezettek-e a törlések.

AllowEdit

Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezettek-e a módosítások.

AllowNew

Lekéri vagy beállít egy értéket, amely jelzi, hogy az új sorok hozzáadhatók-e a AddNew() metódussal.

ApplyDefaultSort

Lekéri vagy beállít egy értéket, amely jelzi, hogy az alapértelmezett rendezést szeretné-e használni. Az alapértelmezett rendezés (növekvő) az összes elsődleges kulcs szerint, a megadott módon PrimaryKey.

Container

Lekéri az összetevő tárolót.

(Öröklődés forrása MarshalByValueComponent)
Count

Lekéri az utána DataView lévő RowFilter rekordok számát, és RowStateFilter alkalmazva van.

DataViewManager

Lekéri a DataViewManager nézethez társított elemet.

DesignMode

Egy értéket kap, amely jelzi, hogy az összetevő jelenleg tervezési módban van-e.

(Öröklődés forrása MarshalByValueComponent)
Events

Lekéri az összetevőhöz csatolt eseménykezelők listáját.

(Öröklődés forrása MarshalByValueComponent)
IsInitialized

Beolvas egy értéket, amely jelzi, hogy az összetevő inicializálva van-e.

IsOpen

Egy olyan értéket kap, amely jelzi, hogy az adatforrás jelenleg nyitva van-e, és kivetíti-e az adatok nézeteit a DataTable.

Item[Int32]

Lekéri egy adatsort egy megadott táblából.

RowFilter

Lekéri vagy beállítja a szűréshez használt kifejezést, hogy mely sorok jelennek meg a DataViewnézetben.

RowStateFilter

Lekéri vagy beállítja a sorállapot-szűrőt, amelyet a DataView.

Site

Lekéri vagy beállítja az összetevő helyét.

(Öröklődés forrása MarshalByValueComponent)
Sort

Lekéri vagy beállítja a rendezési oszlopot vagy oszlopokat, valamint a rendezési sorrendet a DataView.

Table

Lekéri vagy beállítja a forrást DataTable.

Metódusok

Name Description
AddNew()

Új sort ad hozzá a DataView.

BeginInit()

Elindítja DataView egy űrlapon használt vagy egy másik összetevő által használt inicializálását. Az inicializálás futásidőben történik.

Close()

Bezárja a DataView.

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Egy sikeres módosítás után DataColumnCollection következik be.

CopyTo(Array, Int32)

Elemeket másol egy tömbbe. Csak webes űrlapfelületekhez.

Delete(Int32)

Törli a megadott index egyik sorát.

Dispose()

Felszabadítja a .-hez használt összes erőforrást MarshalByValueComponent.

(Öröklődés forrása MarshalByValueComponent)
Dispose(Boolean)

Az objektum által használt erőforrásokat (a memória kivételével) megsemmisíti DataView .

EndInit()

Egy űrlapon használt vagy egy másik összetevő által használt inicializálásának DataView befejezése. Az inicializálás futásidőben történik.

Equals(DataView)

Meghatározza, hogy a megadott DataView példányok egyenlőnek minősülnek-e.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
Find(Object)

Megkeres egy sort a DataView megadott rendezési kulcs értéke alapján.

Find(Object[])

Megkeres egy sort a DataView megadott rendezési kulcsértékek szerint.

FindRows(Object)

Olyan objektumtömböt DataRowView ad vissza, amelynek oszlopai megfelelnek a megadott rendezési kulcs értékének.

FindRows(Object[])

Olyan objektumtömböt DataRowView ad vissza, amelynek oszlopai megfelelnek a megadott rendezési kulcs értékének.

GetEnumerator()

Enumerátort kap ehhez DataView.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetService(Type)

Lekéri a végrehajtó a IServiceProvider.

(Öröklődés forrása MarshalByValueComponent)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IndexListChanged(Object, ListChangedEventArgs)

Egy sikeres módosítás után DataView következik be.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnListChanged(ListChangedEventArgs)

Az eseményt emeli ListChanged ki.

Open()

Megnyitja a DataView.

Reset()

Csak belső használatra van fenntartva.

ToString()

String A ( ha van) nevet tartalmazó értéket Componentad vissza. Ezt a módszert nem szabad felülírni.

(Öröklődés forrása MarshalByValueComponent)
ToTable()

Újat hoz létre és ad DataTable vissza egy meglévő DataViewsor alapján.

ToTable(Boolean, String[])

Újat hoz létre és ad DataTable vissza egy meglévő DataViewsor alapján.

ToTable(String, Boolean, String[])

Újat hoz létre és ad DataTable vissza egy meglévő DataViewsor alapján.

ToTable(String)

Újat hoz létre és ad DataTable vissza egy meglévő DataViewsor alapján.

UpdateIndex()

Csak belső használatra van fenntartva.

UpdateIndex(Boolean)

Csak belső használatra van fenntartva.

esemény

Name Description
Disposed

Hozzáad egy eseménykezelőt az összetevő eseményének Disposed figyeléséhez.

(Öröklődés forrása MarshalByValueComponent)
Initialized

Az inicializálás DataView befejezésekor következik be.

ListChanged

Akkor fordul elő, ha a módosítások által DataView kezelt lista.

Explicit interfész-implementációk

Name Description
IBindingList.AddIndex(PropertyDescriptor)

Ennek a tagnak a leírását lásd AddIndex(PropertyDescriptor): .

IBindingList.AddNew()

Ennek a tagnak a leírását lásd AddNew(): .

IBindingList.AllowEdit

Ennek a tagnak a leírását lásd AllowEdit: .

IBindingList.AllowNew

Ennek a tagnak a leírását lásd AllowNew: .

IBindingList.AllowRemove

Ennek a tagnak a leírását lásd AllowRemove: .

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Ennek a tagnak a leírását lásd ApplySort(PropertyDescriptor, ListSortDirection): .

IBindingList.Find(PropertyDescriptor, Object)

Ennek a tagnak a leírását lásd Find(PropertyDescriptor, Object): .

IBindingList.IsSorted

Ennek a tagnak a leírását lásd IsSorted: .

IBindingList.RemoveIndex(PropertyDescriptor)

Ennek a tagnak a leírását lásd RemoveIndex(PropertyDescriptor): .

IBindingList.RemoveSort()

Ennek a tagnak a leírását lásd RemoveSort(): .

IBindingList.SortDirection

Ennek a tagnak a leírását lásd SortDirection: .

IBindingList.SortProperty

Ennek a tagnak a leírását lásd SortProperty: .

IBindingList.SupportsChangeNotification

Ennek a tagnak a leírását lásd SupportsChangeNotification: .

IBindingList.SupportsSearching

Ennek a tagnak a leírását lásd SupportsSearching: .

IBindingList.SupportsSorting

Ennek a tagnak a leírását lásd SupportsSorting: .

IBindingListView.ApplySort(ListSortDescriptionCollection)

Ennek a tagnak a leírását lásd ApplySort(ListSortDescriptionCollection): .

IBindingListView.Filter

Ennek a tagnak a leírását lásd Filter: .

IBindingListView.RemoveFilter()

Ennek a tagnak a leírását lásd RemoveFilter(): .

IBindingListView.SortDescriptions

Ennek a tagnak a leírását lásd SortDescriptions: .

IBindingListView.SupportsAdvancedSorting

Ennek a tagnak a leírását lásd SupportsAdvancedSorting: .

IBindingListView.SupportsFiltering

Ennek a tagnak a leírását lásd SupportsFiltering: .

ICollection.IsSynchronized

Ennek a tagnak a leírását lásd IsSynchronized: .

ICollection.SyncRoot

Ennek a tagnak a leírását lásd SyncRoot: .

IList.Add(Object)

Ennek a tagnak a leírását lásd Add(Object): .

IList.Clear()

Ennek a tagnak a leírását lásd Clear(): .

IList.Contains(Object)

Ennek a tagnak a leírását lásd Contains(Object): .

IList.IndexOf(Object)

Ennek a tagnak a leírását lásd IndexOf(Object): .

IList.Insert(Int32, Object)

Ennek a tagnak a leírását lásd Insert(Int32, Object): .

IList.IsFixedSize

Ennek a tagnak a leírását lásd IsFixedSize: .

IList.IsReadOnly

Ennek a tagnak a leírását lásd IsReadOnly: .

IList.Item[Int32]

Ennek a tagnak a leírását lásd Item[Int32]: .

IList.Remove(Object)

Ennek a tagnak a leírását lásd Remove(Object): .

IList.RemoveAt(Int32)

Ennek a tagnak a leírását lásd RemoveAt(Int32): .

ITypedList.GetItemProperties(PropertyDescriptor[])

Ennek a tagnak a leírását lásd GetItemProperties(PropertyDescriptor[]): .

ITypedList.GetListName(PropertyDescriptor[])

Ennek a tagnak a leírását lásd GetListName(PropertyDescriptor[]): .

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

CreateAsyncScope(IServiceProvider)

Létrehoz egy újat AsyncServiceScope , amely a hatókörön belüli szolgáltatások feloldására használható.

CreateScope(IServiceProvider)

Létrehoz egy újat IServiceScope , amely a hatókörön belüli szolgáltatások feloldására használható.

GetKeyedService(IServiceProvider, Type, Object)

A szolgáltatás típusának serviceType lekérése a IServiceProvider.

GetKeyedService<T>(IServiceProvider, Object)

A szolgáltatás típusának T lekérése a IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Kérje le a szolgáltatások serviceType számbavételét a IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Kérje le a szolgáltatások T számbavételét a IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

A szolgáltatás típusának serviceType lekérése a IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

A szolgáltatás típusának T lekérése a IServiceProvider.

GetRequiredService(IServiceProvider, Type)

A szolgáltatás típusának serviceType lekérése a IServiceProvider.

GetRequiredService<T>(IServiceProvider)

A szolgáltatás típusának T lekérése a IServiceProvider.

GetService<T>(IServiceProvider)

A szolgáltatás típusának T lekérése a IServiceProvider.

GetServices(IServiceProvider, Type)

Kérje le a szolgáltatások serviceType számbavételét a IServiceProvider.

GetServices<T>(IServiceProvider)

Kérje le a szolgáltatások T számbavételét a IServiceProvider.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes:

Szálbiztonság

Ez a típus biztonságos a többszálas olvasási műveletekhez. Minden írási műveletet szinkronizálnia kell.

Lásd még