DataView Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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 |
| GetKeyedService<T>(IServiceProvider, Object) |
A szolgáltatás típusának |
| GetKeyedServices(IServiceProvider, Type, Object) |
Kérje le a szolgáltatások |
| GetKeyedServices<T>(IServiceProvider, Object) |
Kérje le a szolgáltatások |
| GetRequiredKeyedService(IServiceProvider, Type, Object) |
A szolgáltatás típusának |
| GetRequiredKeyedService<T>(IServiceProvider, Object) |
A szolgáltatás típusának |
| GetRequiredService(IServiceProvider, Type) |
A szolgáltatás típusának |
| GetRequiredService<T>(IServiceProvider) |
A szolgáltatás típusának |
| GetService<T>(IServiceProvider) |
A szolgáltatás típusának |
| GetServices(IServiceProvider, Type) |
Kérje le a szolgáltatások |
| GetServices<T>(IServiceProvider) |
Kérje le a szolgáltatások |
| 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.