DataView Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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.