DataView Třída

Definice

Představuje databindable, přizpůsobené zobrazení objektu DataTable pro řazení, filtrování, vyhledávání, úpravy a navigaci. Objekt DataView neukládá data, ale představuje propojené zobrazení odpovídajícího DataTableobjektu . DataViewZměny dat ovlivní DataTable. DataTableZměny dat ovlivní všechna DataViewdata, která jsou k němu přidružená.

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
Dědičnost
Implementuje

Příklady

Následující příklad vytvoří jeden DataTable s jedním sloupcem a pěti řádky. Vytvoří se dva DataView objekty a RowStateFilter u každého se nastaví objekt , aby zobrazoval různá zobrazení dat tabulky. Hodnoty se pak vytisknou.

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

Následující příklad vytvoří DataView online objednávky seřazené podle celkové splatnosti z LINQ to DataSet dotazu:

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

Poznámky

Hlavní funkcí je DataView umožnit datové vazby na model Windows Forms i Web Forms.

Kromě toho lze přizpůsobit tak, DataView aby vygeneroval podmnožinu dat z .DataTable Tato funkce umožňuje mít dva ovládací prvky vázané na stejnou DataTable, ale zobrazují různé verze dat. Například jeden ovládací prvek může být svázaný s objektem DataView , který zobrazuje všechny řádky v tabulce, a druhý může být nakonfigurován tak, aby zobrazoval pouze řádky, které byly odstraněny z DataTable. Objekt DataTableDefaultView také vlastnost . Tím se vrátí výchozí hodnota DataView tabulky. Pokud například chcete vytvořit vlastní zobrazení tabulky, nastavte RowFilter hodnotu na DataView hodnotu vrácenou parametrem DefaultView.

Pokud chcete vytvořit filtrované a seřazené zobrazení dat, nastavte RowFilter vlastnosti a Sort . Potom použijte Item[] vlastnost k vrácení jediného DataRowViewobjektu .

Můžete také přidávat a odstraňovat ze sady řádků pomocí AddNew metod a Delete . Při použití těchto metod lze vlastnost nastavit tak, RowStateFilter aby se v objektu DataViewzobrazily pouze odstraněné řádky nebo nové řádky.

Poznámka

Pokud explicitně neurčíte kritéria řazení pro DataView, objekty v DataView souboru jsou seřazeny na základě indexu dataView odpovídajícího DataRow objektu v objektu DataTable.RowsDataRowCollection.DataRowView

LINQ to DataSet umožňuje vývojářům vytvářet složité a výkonné dotazy prostřednictvím DataSet rozhraní LINQ. Dotaz LINQ to DataSet však vrátí výčet DataRow objektů, který není snadno použit ve scénáři vazby. DataViewlze vytvořit z LINQ to DataSet dotazu a přebírá charakteristiky filtrování a řazení tohoto dotazu. LINQ to DataSet rozšiřuje funkce DataView objektu tím, že poskytuje filtrování a řazení na základě výrazů LINQ, které umožňuje mnohem složitější a výkonnější operace filtrování a řazení než filtrování a řazení založené na řetězcích. Další informace najdete v tématu Datové vazby a LINQ to DataSet.

Konstruktory

DataView()

Inicializuje novou instanci DataView třídy .

DataView(DataTable)

Inicializuje novou instanci DataView třídy se zadaným DataTableparametrem .

DataView(DataTable, String, String, DataViewRowState)

Inicializuje novou instanci DataView třídy se zadanými DataTable, RowFilter, Sorta DataViewRowState.

Vlastnosti

AllowDelete

Získá nebo nastaví hodnotu, která označuje, zda jsou povoleny odstranění.

AllowEdit

Získá nebo nastaví hodnotu, která označuje, zda jsou povoleny úpravy.

AllowNew

Získá nebo nastaví hodnotu, která označuje, zda nové řádky lze přidat pomocí AddNew() metody .

ApplyDefaultSort

Získá nebo nastaví hodnotu, která označuje, zda použít výchozí řazení. Výchozí řazení je (vzestupně) podle všech primárních klíčů podle parametru PrimaryKey.

Container

Získá kontejner pro komponentu.

(Zděděno od MarshalByValueComponent)
Count

Získá počet záznamů v následující DataViewRowFilter a RowStateFilter byly použity.

DataViewManager

Získá přidružený k DataViewManager tomuto zobrazení.

DesignMode

Získá hodnotu označující, zda je komponenta aktuálně v režimu návrhu.

(Zděděno od MarshalByValueComponent)
Events

Získá seznam obslužných rutin událostí, které jsou připojeny k této komponentě.

(Zděděno od MarshalByValueComponent)
IsInitialized

Získá hodnotu, která označuje, zda je komponenta inicializována.

IsOpen

Získá hodnotu, která označuje, zda zdroj dat je aktuálně otevřen a promítá zobrazení dat v objektu DataTable.

Item[Int32]

Získá řádek dat ze zadané tabulky.

RowFilter

Získá nebo nastaví výraz použitý k filtrování řádků, které jsou zobrazeny v objektu DataView.

RowStateFilter

Získá nebo nastaví filtr stavu řádku použitý v objektu DataView.

Site

Získá nebo nastaví lokalitu komponenty.

(Zděděno od MarshalByValueComponent)
Sort

Získá nebo nastaví sloupec nebo sloupce řazení a pořadí řazení pro DataView.

Table

Získá nebo nastaví zdroj DataTable.

Metody

AddNew()

Přidá nový řádek do .DataView

BeginInit()

Spustí inicializaci DataView , která je použita ve formuláři nebo používána jinou komponentou. Inicializace probíhá za běhu.

Close()

Zavře .DataView

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Vyvolá se po DataColumnCollection úspěšné změně.

CopyTo(Array, Int32)

Zkopíruje položky do pole. Pouze pro rozhraní Web Forms.

Delete(Int32)

Odstraní řádek v zadaném indexu.

Dispose()

Uvolní všechny prostředky používané nástrojem MarshalByValueComponent.

(Zděděno od MarshalByValueComponent)
Dispose(Boolean)

Odstraní prostředky (jiné než paměť) používané objektem DataView .

EndInit()

Ukončí inicializaci DataView prvku, který je použit ve formuláři nebo používán jinou komponentou. Inicializace probíhá za běhu.

Equals(DataView)

Určuje, zda jsou zadané DataView instance považovány za stejné.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Find(Object)

Najde řádek v argumentu DataView podle zadané hodnoty klíče řazení.

Find(Object[])

Vyhledá řádek v parametru DataView podle zadaných hodnot klíče řazení.

FindRows(Object)

Vrátí pole DataRowView objektů, jejichž sloupce odpovídají zadané hodnotě klíče řazení.

FindRows(Object[])

Vrátí pole DataRowView objektů, jejichž sloupce odpovídají zadané hodnotě klíče řazení.

GetEnumerator()

Získá enumerátor pro tento DataView.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetService(Type)

Získá implementátor objektu IServiceProvider.

(Zděděno od MarshalByValueComponent)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
IndexListChanged(Object, ListChangedEventArgs)

Vyvolá se po DataView úspěšné změně.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnListChanged(ListChangedEventArgs)

ListChanged Vyvolá událost.

Open()

Otevře .DataView

Reset()

Vyhrazeno pouze pro interní použití.

ToString()

String Vrátí hodnotu obsahující název , Componentpokud existuje. Tato metoda by neměla být přepsána.

(Zděděno od MarshalByValueComponent)
ToTable()

Vytvoří a vrátí nový DataTable na základě řádků v existujícím DataViewobjektu .

ToTable(Boolean, String[])

Vytvoří a vrátí nový DataTable na základě řádků v existujícím DataViewobjektu .

ToTable(String)

Vytvoří a vrátí nový DataTable na základě řádků v existujícím DataViewobjektu .

ToTable(String, Boolean, String[])

Vytvoří a vrátí nový DataTable na základě řádků v existujícím DataViewobjektu .

UpdateIndex()

Vyhrazeno pouze pro interní použití.

UpdateIndex(Boolean)

Vyhrazeno pouze pro interní použití.

Událost

Disposed

Přidá obslužnou rutinu události pro naslouchání Disposed události komponenty.

(Zděděno od MarshalByValueComponent)
Initialized

Vyvolá se při inicializaci je dokončena DataView .

ListChanged

Vyvolá se při seznamu spravovaném DataView změnami.

Explicitní implementace rozhraní

IBindingList.AddIndex(PropertyDescriptor)

Popis tohoto člena najdete v tématu AddIndex(PropertyDescriptor).

IBindingList.AddNew()

Popis tohoto člena najdete v tématu AddNew().

IBindingList.AllowEdit

Popis tohoto člena najdete v tématu AllowEdit.

IBindingList.AllowNew

Popis tohoto člena najdete v tématu AllowNew.

IBindingList.AllowRemove

Popis tohoto člena najdete v tématu AllowRemove.

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Popis tohoto člena najdete v tématu ApplySort(PropertyDescriptor, ListSortDirection).

IBindingList.Find(PropertyDescriptor, Object)

Popis tohoto člena najdete v tématu Find(PropertyDescriptor, Object).

IBindingList.IsSorted

Popis tohoto člena najdete v tématu IsSorted.

IBindingList.RemoveIndex(PropertyDescriptor)

Popis tohoto člena najdete v tématu RemoveIndex(PropertyDescriptor).

IBindingList.RemoveSort()

Popis tohoto člena najdete v tématu RemoveSort().

IBindingList.SortDirection

Popis tohoto člena najdete v tématu SortDirection.

IBindingList.SortProperty

Popis tohoto člena najdete v tématu SortProperty.

IBindingList.SupportsChangeNotification

Popis tohoto člena najdete v tématu SupportsChangeNotification.

IBindingList.SupportsSearching

Popis tohoto člena najdete v tématu SupportsSearching.

IBindingList.SupportsSorting

Popis tohoto člena najdete v tématu SupportsSorting.

IBindingListView.ApplySort(ListSortDescriptionCollection)

Popis tohoto člena najdete v tématu ApplySort(ListSortDescriptionCollection).

IBindingListView.Filter

Popis tohoto člena najdete v tématu Filter.

IBindingListView.RemoveFilter()

Popis tohoto člena najdete v tématu RemoveFilter().

IBindingListView.SortDescriptions

Popis tohoto člena najdete v tématu SortDescriptions.

IBindingListView.SupportsAdvancedSorting

Popis tohoto člena najdete v tématu SupportsAdvancedSorting.

IBindingListView.SupportsFiltering

Popis tohoto člena najdete v tématu SupportsFiltering.

ICollection.IsSynchronized

Popis tohoto člena najdete v tématu IsSynchronized.

ICollection.SyncRoot

Popis tohoto člena najdete v tématu SyncRoot.

IList.Add(Object)

Popis tohoto člena najdete v tématu Add(Object).

IList.Clear()

Popis tohoto člena najdete v tématu Clear().

IList.Contains(Object)

Popis tohoto člena najdete v tématu Contains(Object).

IList.IndexOf(Object)

Popis tohoto člena najdete v tématu IndexOf(Object).

IList.Insert(Int32, Object)

Popis tohoto člena najdete v tématu Insert(Int32, Object).

IList.IsFixedSize

Popis tohoto člena najdete v tématu IsFixedSize.

IList.IsReadOnly

Popis tohoto člena najdete v tématu IsReadOnly.

IList.Item[Int32]

Popis tohoto člena najdete v tématu Item[Int32].

IList.Remove(Object)

Popis tohoto člena najdete v tématu Remove(Object).

IList.RemoveAt(Int32)

Popis tohoto člena najdete v tématu RemoveAt(Int32).

ITypedList.GetItemProperties(PropertyDescriptor[])

Popis tohoto člena najdete v tématu GetItemProperties(PropertyDescriptor[]).

ITypedList.GetListName(PropertyDescriptor[])

Popis tohoto člena najdete v tématu GetListName(PropertyDescriptor[]).

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky objektu IEnumerable na základě zadaného typu.

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro

Bezpečný přístup z více vláken

Tento typ je bezpečný pro operace čtení ve více vláknech. Je nutné synchronizovat všechny operace zápisu.

Viz také