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 veri birleştirilebilir, ö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 DataTableetkiler. 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, bir LINQ to DataSet sorgusundan kalan toplam sipariş edilen çevrimiçi siparişlerin bir DataView bölümünü 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 veri bağlamaya izin vermektir.
Ayrıca, bir DataView veri alt kümesini içinden DataTablesunmak 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 denetimine bağlı olabilir ve ikinci bir denetim ise yalnızca 'den 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 özelliğini kullanarak Item[] tek DataRowViewbir döndürebilirsiniz.
Ayrıca ve Delete yöntemlerini kullanarak AddNew satır kümesine ekleyip silebilirsiniz. Bu yöntemleri kullandığınızda, RowStateFilter özelliği yalnızca silinen satırların veya yeni satırların tarafından DataViewgörüntüleneceğini belirtecek şekilde ayarlanabilir.
Not
için DataView
sıralama ölçütlerini açıkça belirtmezseniz içindeki nesnelerDataView
, DataRowView
içinde karşılık gelen DataRow
DataTable.Rows
DataRowCollection
DataView dizinine göre sıralanır.
LINQ to DataSet, geliştiricilerin LINQ kullanarak üzerinde DataSet karmaşık ve güçlü sorgular oluşturmasına olanak tanır. LINQ to DataSet sorgusu, bağlama senaryosunda kolayca kullanılmayan nesnelerin bir sabit listesi DataRow döndürür. DataViewbir 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şlemleri sağlar. Daha fazla bilgi için bkz. Veri Bağlama ve LINQ to DataSet.
Oluşturucular
DataView() |
DataView sınıfının yeni bir örneğini başlatır. |
DataView(DataTable) |
belirtilen DataTableile sınıfının yeni bir örneğini DataView 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. |
Özellikler
AllowDelete |
Silmelere 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 belirten 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ıt sayısını alır. |
DataViewManager |
Bu görünümle ilişkili olan öğesini DataViewManager alır. |
DesignMode |
Bileşenin şu anda tasarım modunda olup olmadığını belirten 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ülendiğ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 |
için sıralama sütununu veya sütunlarını ve sıralama düzenini DataViewalır veya ayarlar. |
Table |
kaynağını DataTablealır veya ayarlar. |
Yöntemler
AddNew() |
öğesine DataViewyeni bir satır ekler. |
BeginInit() |
Formda kullanılan veya başka bir DataView bileşen tarafından kullanılan bir başlatmayı başlatır. Başlatma çalışma zamanında gerçekleşir. |
Close() |
öğesini DataViewkapatır. |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
başarılı bir DataColumnCollection şekilde 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() |
MarshalByValueComponent tarafından kullanı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 olarak 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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
IndexListChanged(Object, ListChangedEventArgs) |
başarılı bir DataView şekilde değiştirildikten sonra gerçekleşir. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
OnListChanged(ListChangedEventArgs) |
Olayı tetikler ListChanged . |
Open() |
bir DataViewaçar. |
Reset() |
Yalnızca iç kullanım için ayrılmıştır. |
ToString() |
Varsa, adını Componentiçeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır. (Devralındığı yer: MarshalByValueComponent) |
ToTable() |
Varolan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
ToTable(Boolean, String[]) |
Varolan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
ToTable(String) |
Varolan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
ToTable(String, Boolean, String[]) |
Varolan DataViewbir içindeki satırları temel alan yeni DataTable bir oluşturur ve döndürür. |
UpdateIndex() |
Yalnızca iç kullanım için ayrılmıştır. |
UpdateIndex(Boolean) |
Yalnızca iç kullanım için ayrılmıştır. |
Ekinlikler
Disposed |
Bileşendeki olayı dinlemek için Disposed bir olay işleyicisi ekler. (Devralındığı yer: MarshalByValueComponent) |
Initialized |
başlatma DataView 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ı
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür, çok iş parçacıklı okuma işlemleri için güvenlidir. Mevcut yazma işlemlerini eşitlemeniz gerekir.
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin