DataView Sınıf

Tanım

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 DataViewsıralama ölçütlerini açıkça belirtmezseniz içindeki nesnelerDataView, DataRowView içinde karşılık gelen DataRowDataTable.RowsDataRowCollectionDataView 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ı

IBindingList.AddIndex(PropertyDescriptor)

Bu üyenin açıklaması için bkz AddIndex(PropertyDescriptor). .

IBindingList.AddNew()

Bu üyenin açıklaması için bkz AddNew(). .

IBindingList.AllowEdit

Bu üyenin açıklaması için bkz AllowEdit. .

IBindingList.AllowNew

Bu üyenin açıklaması için bkz AllowNew. .

IBindingList.AllowRemove

Bu üyenin açıklaması için bkz AllowRemove. .

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Bu üyenin açıklaması için bkz ApplySort(PropertyDescriptor, ListSortDirection). .

IBindingList.Find(PropertyDescriptor, Object)

Bu üyenin açıklaması için bkz Find(PropertyDescriptor, Object). .

IBindingList.IsSorted

Bu üyenin açıklaması için bkz IsSorted. .

IBindingList.RemoveIndex(PropertyDescriptor)

Bu üyenin açıklaması için bkz RemoveIndex(PropertyDescriptor). .

IBindingList.RemoveSort()

Bu üyenin açıklaması için bkz RemoveSort(). .

IBindingList.SortDirection

Bu üyenin açıklaması için bkz SortDirection. .

IBindingList.SortProperty

Bu üyenin açıklaması için bkz SortProperty. .

IBindingList.SupportsChangeNotification

Bu üyenin açıklaması için bkz SupportsChangeNotification. .

IBindingList.SupportsSearching

Bu üyenin açıklaması için bkz SupportsSearching. .

IBindingList.SupportsSorting

Bu üyenin açıklaması için bkz SupportsSorting. .

IBindingListView.ApplySort(ListSortDescriptionCollection)

Bu üyenin açıklaması için bkz ApplySort(ListSortDescriptionCollection). .

IBindingListView.Filter

Bu üyenin açıklaması için bkz Filter. .

IBindingListView.RemoveFilter()

Bu üyenin açıklaması için bkz RemoveFilter(). .

IBindingListView.SortDescriptions

Bu üyenin açıklaması için bkz SortDescriptions. .

IBindingListView.SupportsAdvancedSorting

Bu üyenin açıklaması için bkz SupportsAdvancedSorting. .

IBindingListView.SupportsFiltering

Bu üyenin açıklaması için bkz SupportsFiltering. .

ICollection.IsSynchronized

Bu üyenin açıklaması için bkz IsSynchronized. .

ICollection.SyncRoot

Bu üyenin açıklaması için bkz SyncRoot. .

IList.Add(Object)

Bu üyenin açıklaması için bkz Add(Object). .

IList.Clear()

Bu üyenin açıklaması için bkz Clear(). .

IList.Contains(Object)

Bu üyenin açıklaması için bkz Contains(Object). .

IList.IndexOf(Object)

Bu üyenin açıklaması için bkz IndexOf(Object). .

IList.Insert(Int32, Object)

Bu üyenin açıklaması için bkz Insert(Int32, Object). .

IList.IsFixedSize

Bu üyenin açıklaması için bkz IsFixedSize. .

IList.IsReadOnly

Bu üyenin açıklaması için bkz IsReadOnly. .

IList.Item[Int32]

Bu üyenin açıklaması için bkz Item[Int32]. .

IList.Remove(Object)

Bu üyenin açıklaması için bkz Remove(Object). .

IList.RemoveAt(Int32)

Bu üyenin açıklaması için bkz RemoveAt(Int32). .

ITypedList.GetItemProperties(PropertyDescriptor[])

Bu üyenin açıklaması için bkz GetItemProperties(PropertyDescriptor[]). .

ITypedList.GetListName(PropertyDescriptor[])

Bu üyenin açıklaması için bkz GetListName(PropertyDescriptor[]). .

Uzantı Metotları

GetKeyedService<T>(IServiceProvider, Object)

türünde IServiceProviderbir hizmet T alır.

GetKeyedServices(IServiceProvider, Type, Object)

türünde hizmetlerin serviceType bir numaralandırmasını IServiceProvideralır.

GetKeyedServices<T>(IServiceProvider, Object)

türünde hizmetlerin T bir numaralandırmasını IServiceProvideralır.

GetRequiredKeyedService(IServiceProvider, Type, Object)

türünde IServiceProviderbir hizmet serviceType alır.

GetRequiredKeyedService<T>(IServiceProvider, Object)

türünde IServiceProviderbir hizmet T alır.

CreateAsyncScope(IServiceProvider)

Kapsamı belirlenmiş hizmetleri çözümlemek için kullanılabilecek yeni AsyncServiceScope bir oluşturur.

CreateScope(IServiceProvider)

Kapsamı belirlenmiş hizmetleri çözümlemek için kullanılabilecek yeni IServiceScope bir oluşturur.

GetRequiredService(IServiceProvider, Type)

türünden serviceTypeIServiceProviderhizmet alın.

GetRequiredService<T>(IServiceProvider)

türünden TIServiceProviderhizmet alın.

GetService<T>(IServiceProvider)

türünden TIServiceProviderhizmet alın.

GetServices(IServiceProvider, Type)

türünde bir hizmet serviceTypeIServiceProviderlistesi alın.

GetServices<T>(IServiceProvider)

türünde bir hizmet TIServiceProviderlistesi alın.

GetFakeLogCollector(IServiceProvider)

Sahte günlükçüye gönderilen günlük kayıtlarını toplayan nesneyi alır.

GetFakeRedactionCollector(IServiceProvider)

Bağımlılık ekleme kapsayıcısından sahte redaktör toplayıcı örneğini alır.

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe atar.

OfType<TResult>(IEnumerable)

Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesini öğesine IQueryabledönüştürür.

Ş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.