DataView Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje dostosowany widok DataTable danych do sortowania, filtrowania, wyszukiwania, edytowania i nawigacji. Obiekt DataView nie przechowuje danych, ale zamiast tego reprezentuje połączony widok odpowiadającego DataTablemu elementu . DataViewZmiany danych będą mieć wpływ na DataTableelement . DataTableZmiany danych będą mieć wpływ na wszystkie DataViewskojarzone z nim dane.
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
- Dziedziczenie
- Implementuje
Przykłady
W poniższym przykładzie zostanie utworzony pojedynczy z DataTable jedną kolumną i pięcioma wierszami. Dwa DataView obiekty są tworzone, a obiekt RowStateFilter jest ustawiony na każdym z nich, aby wyświetlać różne widoki danych tabeli. Następnie wartości są drukowane.
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
W poniższym przykładzie utworzono DataView zamówienie online uporządkowane według sumy należnej na podstawie zapytania LINQ to DataSet:
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
Uwagi
Główną funkcją funkcji DataView jest umożliwienie powiązania danych zarówno na Windows Forms, jak i Web Forms.
Ponadto można dostosować element DataView do prezentowania podzestawu danych z elementu DataTable. Ta funkcja umożliwia posiadanie dwóch kontrolek powiązanych z tym samym DataTableelementem , ale które pokazują różne wersje danych. Na przykład jedna kontrolka może być powiązana z elementem pokazującym DataView wszystkie wiersze w tabeli, a druga może być skonfigurowana do wyświetlania tylko wierszy usuniętych z tabeli DataTable. Obiekt DataTable ma DefaultView również właściwość . Spowoduje to zwrócenie wartości domyślnej DataView tabeli. Jeśli na przykład chcesz utworzyć widok niestandardowy w tabeli, ustaw element RowFilter zwrócony DataView przez DefaultViewelement .
Aby utworzyć filtrowany i posortowany widok danych, ustaw RowFilter właściwości i Sort . Następnie użyj Item[] właściwości , aby zwrócić pojedynczy DataRowViewelement .
Można również dodawać i usuwać z zestawu wierszy przy użyciu AddNew metod i Delete . Jeśli używasz tych metod, właściwość może ustawić, RowStateFilter aby określić, że wyświetlane są tylko usunięte wiersze lub nowe wiersze.DataView
Uwaga
Jeśli nie określisz jawnie kryteriów sortowania dla elementu , DataRowView
obiekty w programie DataView
są sortowane na podstawie indeksu elementu DataView odpowiadającego DataRow
w obiekcie DataTable.Rows
DataRowCollection
.DataView
LINQ to DataSet umożliwia deweloperom tworzenie złożonych, zaawansowanych zapytań DataSet za pomocą LINQ. Zapytanie LINQ to DataSet zwraca jednak wyliczenie DataRow obiektów, które nie jest łatwo używane w scenariuszu powiązania. DataViewmożna utworzyć na podstawie zapytania LINQ to DataSet i pobiera właściwości filtrowania i sortowania tego zapytania. LINQ to DataSet rozszerza funkcjonalność, DataView zapewniając filtrowanie i sortowanie oparte na wyrażeniach LINQ, co pozwala na znacznie bardziej złożone i zaawansowane operacje filtrowania i sortowania niż filtrowanie i sortowanie oparte na ciągach. Aby uzyskać więcej informacji, zobacz Powiązanie danych i LINQ to DataSet.
Konstruktory
DataView() |
Inicjuje nowe wystąpienie klasy DataView. |
DataView(DataTable) |
Inicjuje DataView nowe wystąpienie klasy z określonym DataTableelementem . |
DataView(DataTable, String, String, DataViewRowState) |
Inicjuje DataView nowe wystąpienie klasy z określonymi DataTableelementami , RowFilter, Sorti DataViewRowState. |
Właściwości
AllowDelete |
Pobiera lub ustawia wartość wskazującą, czy usunięcia są dozwolone. |
AllowEdit |
Pobiera lub ustawia wartość wskazującą, czy edycje są dozwolone. |
AllowNew |
Pobiera lub ustawia wartość wskazującą, czy można dodać nowe wiersze przy użyciu AddNew() metody . |
ApplyDefaultSort |
Pobiera lub ustawia wartość wskazującą, czy używać sortowania domyślnego. Domyślne sortowanie to (rosnąco) według wszystkich kluczy podstawowych określonych przez PrimaryKey. |
Container |
Pobiera kontener dla składnika. (Odziedziczone po MarshalByValueComponent) |
Count |
Pobiera liczbę rekordów w obiekcie DataView po RowFilter i RowStateFilter zostały zastosowane. |
DataViewManager |
DataViewManager Pobiera element skojarzony z tym widokiem. |
DesignMode |
Pobiera wartość wskazującą, czy składnik jest obecnie w trybie projektowania. (Odziedziczone po MarshalByValueComponent) |
Events |
Pobiera listę programów obsługi zdarzeń dołączonych do tego składnika. (Odziedziczone po MarshalByValueComponent) |
IsInitialized |
Pobiera wartość wskazującą, czy składnik jest inicjowany. |
IsOpen |
Pobiera wartość wskazującą, czy źródło danych jest obecnie otwarte i wyświetla widoki danych w obiekcie DataTable. |
Item[Int32] |
Pobiera wiersz danych z określonej tabeli. |
RowFilter |
Pobiera lub ustawia wyrażenie używane do filtrowania wierszy wyświetlanych w obiekcie DataView. |
RowStateFilter |
Pobiera lub ustawia filtr stanu wiersza używany w elemecie DataView. |
Site |
Pobiera lub ustawia lokację składnika. (Odziedziczone po MarshalByValueComponent) |
Sort |
Pobiera lub ustawia sortowanie kolumn lub kolumn oraz kolejność sortowania dla elementu DataView. |
Table |
Pobiera lub ustawia źródło DataTable. |
Metody
AddNew() |
Dodaje nowy wiersz do elementu DataView. |
BeginInit() |
Rozpoczyna inicjowanie obiektu DataView używanego w formularzu lub używanego przez inny składnik. Inicjowanie odbywa się w czasie wykonywania. |
Close() |
Zamyka element DataView. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Występuje po pomyślnym DataColumnCollection zmianie. |
CopyTo(Array, Int32) |
Kopiuje elementy do tablicy. Tylko w przypadku interfejsów Web Forms. |
Delete(Int32) |
Usuwa wiersz w określonym indeksie. |
Dispose() |
Zwalnia wszelkie zasoby używane przez element MarshalByValueComponent. (Odziedziczone po MarshalByValueComponent) |
Dispose(Boolean) |
Usuwa zasoby (inne niż pamięć) używane przez DataView obiekt . |
EndInit() |
Kończy inicjowanie obiektu DataView używanego w formularzu lub używanego przez inny składnik. Inicjowanie odbywa się w czasie wykonywania. |
Equals(DataView) |
Określa, czy określone DataView wystąpienia są traktowane jako równe. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Find(Object) |
Znajduje wiersz w DataView obiekcie według określonej wartości klucza sortowania. |
Find(Object[]) |
Znajduje wiersz w DataView obiekcie według określonych wartości klucza sortowania. |
FindRows(Object) |
Zwraca tablicę DataRowView obiektów, których kolumny są zgodne z określoną wartością klucza sortowania. |
FindRows(Object[]) |
Zwraca tablicę DataRowView obiektów, których kolumny są zgodne z określoną wartością klucza sortowania. |
GetEnumerator() |
Pobiera moduł wyliczający dla tego DataViewelementu . |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetService(Type) |
Pobiera implementator obiektu IServiceProvider. (Odziedziczone po MarshalByValueComponent) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Występuje po pomyślnym DataView zmianie. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnListChanged(ListChangedEventArgs) |
ListChanged Zgłasza zdarzenie. |
Open() |
Otwiera element DataView. |
Reset() |
Zarezerwowane tylko do użytku wewnętrznego. |
ToString() |
Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana. (Odziedziczone po MarshalByValueComponent) |
ToTable() |
Tworzy i zwraca nowy DataTable na podstawie wierszy w istniejącym DataViewobiekcie . |
ToTable(Boolean, String[]) |
Tworzy i zwraca nowy DataTable na podstawie wierszy w istniejącym DataViewobiekcie . |
ToTable(String) |
Tworzy i zwraca nowy DataTable na podstawie wierszy w istniejącym DataViewobiekcie . |
ToTable(String, Boolean, String[]) |
Tworzy i zwraca nowy DataTable na podstawie wierszy w istniejącym DataViewobiekcie . |
UpdateIndex() |
Zarezerwowane tylko do użytku wewnętrznego. |
UpdateIndex(Boolean) |
Zarezerwowane tylko do użytku wewnętrznego. |
Zdarzenia
Disposed |
Dodaje program obsługi zdarzeń do nasłuchiwania Disposed zdarzenia w składniku. (Odziedziczone po MarshalByValueComponent) |
Initialized |
Występuje po zakończeniu inicjowania obiektu DataView . |
ListChanged |
Występuje, gdy lista zarządzana przez DataView zmiany. |
Jawne implementacje interfejsu
Metody rozszerzania
GetKeyedService<T>(IServiceProvider, Object) |
Pobiera usługę typu |
GetKeyedServices(IServiceProvider, Type, Object) |
Pobiera wyliczenie usług typu |
GetKeyedServices<T>(IServiceProvider, Object) |
Pobiera wyliczenie usług typu |
GetRequiredKeyedService(IServiceProvider, Type, Object) |
Pobiera usługę typu |
GetRequiredKeyedService<T>(IServiceProvider, Object) |
Pobiera usługę typu |
CreateAsyncScope(IServiceProvider) |
Tworzy nowy AsyncServiceScope , który może służyć do rozwiązywania problemów z usługami o określonym zakresie. |
CreateScope(IServiceProvider) |
Tworzy nowy IServiceScope , który może służyć do rozwiązywania problemów z usługami o określonym zakresie. |
GetRequiredService(IServiceProvider, Type) |
Pobierz usługę typu |
GetRequiredService<T>(IServiceProvider) |
Pobierz usługę typu |
GetService<T>(IServiceProvider) |
Pobierz usługę typu |
GetServices(IServiceProvider, Type) |
Pobierz wyliczenie usług typu |
GetServices<T>(IServiceProvider) |
Pobierz wyliczenie usług typu |
GetFakeLogCollector(IServiceProvider) |
Pobiera obiekt zbierający rekordy dziennika wysyłane do fałszywego rejestratora. |
GetFakeRedactionCollector(IServiceProvider) |
Pobiera fałszywe wystąpienie modułu zbierającego redactor z kontenera wstrzykiwania zależności. |
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable do określonego typu. |
OfType<TResult>(IEnumerable) |
Filtruje elementy elementu IEnumerable na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |
Dotyczy
Bezpieczeństwo wątkowe
Ten typ jest bezpieczny dla operacji odczytu wielowątkowego. Należy zsynchronizować wszystkie operacje zapisu.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla