DataView Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.