DataView Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sıralama, filtreleme, arama, düzenleme ve gezinti için veribinlenebilir, özelleştirilmiş görünümünü DataTable temsil eder. DataView verileri depolamaz, bunun yerine karşılık gelen DataTableöğesinin bağlı görünümünü temsil eder. 'nin verisinde DataViewyapılan değişiklikler, 'yi etkileyecektir DataTable. Verilerde DataTableyapılan değişiklikler, verilerle ilişkili tüm DataViewverileri etkiler.
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
- Devralma
- Uygulamalar
Örnekler
Aşağıdaki örnek, bir sütun ve beş satır içeren bir tek DataTable oluşturur. İki DataView nesne oluşturulur ve RowStateFilter her birinde tablo verilerinin farklı görünümlerini gösterecek şekilde ayarlanır. Ardından değerler yazdırılır.
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
Aşağıdaki örnek, DataView LINQ to DataSet sorgusundan kaynaklanan toplam sipariş edilen bir çevrimiçi sipariş oluşturur:
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
Açıklamalar
'nin DataView önemli bir işlevi, hem Windows Forms hem de Web Forms'da veri bağlamaya izin vermektir.
Buna ek olarak, ' DataView den DataTablebir veri alt kümesi sunmak için özelleştirilebilir. Bu özellik, aynı DataTableöğesine bağlı olan ancak verilerin farklı sürümlerini gösteren iki denetime sahip olmanıza olanak tanır. Örneğin, bir denetim tablodaki tüm satırları gösteren bir DataView denetime bağlı olabilir ve ikinci bir denetim ise yalnızca öğesinden DataTablesilinmiş olan satırları görüntüleyecek şekilde yapılandırılabilir. ayrıca DataTable bir DefaultView özelliği vardır. Bu, tablo için varsayılan DataView değeri döndürür. Örneğin, tabloda özel bir görünüm oluşturmak istiyorsanız, tarafından DefaultViewdöndürülen üzerinde DataView değerini ayarlayınRowFilter.
Verilerin filtrelenmiş ve sıralanmış bir görünümünü oluşturmak için ve Sort özelliklerini ayarlayınRowFilter. Ardından tek bir DataRowViewdöndürmek için özelliğini kullanınItem[].
ayrıca ve Delete yöntemlerini kullanarak AddNew satır kümesine ekleyip silebilirsiniz. Bu yöntemleri kullandığınızda, RowStateFilter özelliği tarafından yalnızca silinen satırların veya yeni satırların görüntüleneceğini DataViewbelirtecek şekilde ayarlanabilir.
Not
için DataViewsıralama ölçütlerini açıkça belirtmezseniz içindeki DataRowView nesneler DataView , içinde karşılık gelen DataRowDataTable.RowsDataRowCollectionDataView dizinine göre sıralanır.
LINQ to DataSet, geliştiricilerin LINQ kullanarak bir DataSet üzerinden karmaşık ve güçlü sorgular oluşturmasına olanak tanır. LINQ to DataSet sorgusu, bağlama senaryosunda kolayca kullanılmayan nesnelerin bir numaralandırmasını DataRow döndürür. DataView bir LINQ to DataSet sorgusundan oluşturulabilir ve bu sorgunun filtreleme ve sıralama özelliklerini alır. LINQ to DataSet, LINQ ifade tabanlı filtreleme ve sıralama sağlayarak işlevini genişletir DataView ve bu da dize tabanlı filtreleme ve sıralamaya göre çok daha karmaşık ve güçlü filtreleme ve sıralama işlemlerine olanak tanır. Daha fazla bilgi için bkz. Veri Bağlama ve LINQ to DataSet .
Oluşturucular
| Name | Description |
|---|---|
| DataView() |
DataView sınıfının yeni bir örneğini başlatır. |
| DataView(DataTable, String, String, DataViewRowState) |
Belirtilen DataTable, , RowFilterSortve DataViewRowStateile sınıfının yeni bir örneğini DataView başlatır. |
| DataView(DataTable) |
belirtilen DataTableile sınıfının yeni bir örneğini DataView başlatır. |
Özellikler
| Name | Description |
|---|---|
| AllowDelete |
Silme işlemlerine izin verilip verilmeyeceğini belirten bir değer alır veya ayarlar. |
| AllowEdit |
Düzenlemelere izin verilip verilmeyeceğini belirten bir değer alır veya ayarlar. |
| AllowNew |
Yöntemi kullanılarak AddNew() yeni satırların eklenip eklenemeyeceğini gösteren bir değer alır veya ayarlar. |
| ApplyDefaultSort |
Varsayılan sıralamanın kullanılıp kullanılmayacağını belirten bir değer alır veya ayarlar. Varsayılan sıralama, tarafından PrimaryKeybelirtilen tüm birincil anahtarlara göre (artan) olur. |
| Container |
Bileşenin kapsayıcısını alır. (Devralındığı yer: MarshalByValueComponent) |
| Count |
Sonraki RowFilterRowStateFilter ve DataView uygulanan kayıtların sayısını alır. |
| DataViewManager |
Bu görünümle ilişkilendirilmiş öğesini DataViewManager alır. |
| DesignMode |
Bileşenin şu anda tasarım modunda olup olmadığını gösteren bir değer alır. (Devralındığı yer: MarshalByValueComponent) |
| Events |
Bu bileşene bağlı olay işleyicilerinin listesini alır. (Devralındığı yer: MarshalByValueComponent) |
| IsInitialized |
Bileşenin başlatılıp başlatılmadığını gösteren bir değer alır. |
| IsOpen |
Veri kaynağının şu anda açık olup olmadığını gösteren ve üzerindeki DataTableveri görünümlerini yansıtan bir değer alır. |
| Item[Int32] |
Belirtilen tablodan bir veri satırı alır. |
| RowFilter |
içinde hangi satırların görüntüleneceğini filtrelemek için kullanılan ifadeyi DataViewalır veya ayarlar. |
| RowStateFilter |
içinde kullanılan satır durumu filtresini DataViewalır veya ayarlar. |
| Site |
Bileşenin sitesini alır veya ayarlar. (Devralındığı yer: MarshalByValueComponent) |
| Sort |
sıralama sütununu veya sütunlarını alır veya ayarlar ve için sıralama düzenini ayarlar DataView. |
| Table |
kaynağını DataTablealır veya ayarlar. |
Yöntemler
| Name | Description |
|---|---|
| AddNew() |
öğesine DataViewyeni bir satır ekler. |
| BeginInit() |
Formda kullanılan veya başka bir DataView bileşen tarafından kullanılan bir öğesinin başlatılmasını başlatır. Başlatma çalışma zamanında gerçekleşir. |
| Close() |
öğesini DataViewkapatır. |
| ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
bir DataColumnCollection başarıyla değiştirildikten sonra gerçekleşir. |
| CopyTo(Array, Int32) |
Öğeleri bir diziye kopyalar. Yalnızca Web Forms Arabirimleri için. |
| Delete(Int32) |
Belirtilen dizindeki bir satırı siler. |
| Dispose() |
tarafından MarshalByValueComponentkullanılan tüm kaynakları serbest bırakır. (Devralındığı yer: MarshalByValueComponent) |
| Dispose(Boolean) |
Nesnesi tarafından kullanılan kaynakları (bellek dışında) atar DataView . |
| EndInit() |
Formda kullanılan veya başka bir DataView bileşen tarafından kullanılan bir öğesinin başlatılmasını sonlandırır. Başlatma çalışma zamanında gerçekleşir. |
| Equals(DataView) |
Belirtilen DataView örneklerin eşit kabul edilip edilmeyeceğini belirler. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| Find(Object) |
içinde belirtilen sıralama anahtarı değerine göre bir satır DataView bulur. |
| Find(Object[]) |
içinde belirtilen sıralama anahtarı değerlerine göre bir satır DataView bulur. |
| FindRows(Object) |
Sütunları belirtilen sıralama anahtarı değeriyle eşleşen bir nesne dizisi DataRowView döndürür. |
| FindRows(Object[]) |
Sütunları belirtilen sıralama anahtarı değeriyle eşleşen bir nesne dizisi DataRowView döndürür. |
| GetEnumerator() |
Bunun DataViewiçin bir numaralandırıcı alır. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetService(Type) |
uygulayıcısını IServiceProvideralır. (Devralındığı yer: MarshalByValueComponent) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| IndexListChanged(Object, ListChangedEventArgs) |
bir DataView başarıyla değiştirildikten sonra gerçekleşir. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| OnListChanged(ListChangedEventArgs) |
Olayı tetikler ListChanged . |
| Open() |
bir DataViewaçar. |
| Reset() |
Yalnızca dahili kullanım için ayrılmıştır. |
| ToString() |
Varsa, adını Stringiçeren bir Component döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: MarshalByValueComponent) |
| ToTable() |
Var olan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
| ToTable(Boolean, String[]) |
Var olan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
| ToTable(String, Boolean, String[]) |
Var olan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
| ToTable(String) |
Var olan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
| UpdateIndex() |
Yalnızca dahili kullanım için ayrılmıştır. |
| UpdateIndex(Boolean) |
Yalnızca dahili kullanım için ayrılmıştır. |
Ekinlikler
| Name | Description |
|---|---|
| Disposed |
Bileşendeki olayı dinlemek için Disposed bir olay işleyicisi ekler. (Devralındığı yer: MarshalByValueComponent) |
| Initialized |
DataView başlatma işlemi tamamlandığında gerçekleşir. |
| ListChanged |
Liste değişiklikler tarafından DataView yönetildiğinde gerçekleşir. |
Belirtik Arabirim Kullanımları
Uzantı Metotları
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
| AsQueryable(IEnumerable) |
bir IEnumerable öğesine IQueryabledönüştürür. |
| Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe yazar. |
| OfType<TResult>(IEnumerable) |
Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler. |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür, çok iş parçacıklı okuma işlemleri için güvenlidir. Tüm yazma işlemlerini eşitlemeniz gerekir.