Aracılığıyla paylaş


DataView Sınıf

Tanım

Sıralama, filtreleme, arama, düzenleme ve gezinti için bir DataTable veribinlenebilir, özelleştirilmiş görünümünü temsil eder. DataView verileri depolamaz, bunun yerine ilgili DataTablebağlı görünümünü temsil eder. DataViewverilerde yapılan değişiklikler DataTableetkiler. DataTableverilerde yapılan değişiklikler, verilerle ilişkili tüm DataViewetkiler.

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 tek bir DataTable oluşturur. İki DataView nesnesi oluşturulur ve her birinde tablo verilerinin farklı görünümlerini göstermek için RowStateFilter 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, LINQ to DataSet sorgusundan kaynaklanan toplam sipariş edilen çevrimiçi siparişlerin DataView 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

DataView önemli bir işlevi, hem Windows Forms hem de Web Forms'da veri bağlamaya izin vermektir.

Ayrıca, DataViewDataTableveri alt kümesini sunmak için özelleştirilebilir. Bu özellik, aynı DataTablebağ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 bağlı olabilir ve bir saniye yalnızca DataTablesilinmiş satırları görüntülemek için yapılandırılabilir. DataTable bir DefaultView özelliği de vardır. Bu, tablo için varsayılan DataView döndürür. Örneğin, tabloda özel bir görünüm oluşturmak istiyorsanız, DefaultViewtarafından döndürülen DataViewRowFilter ayarlayın.

Verilerin filtrelenmiş ve sıralanmış bir görünümünü oluşturmak için RowFilter ve Sort özelliklerini ayarlayın. Ardından tek bir DataRowViewdöndürmek için Item[] özelliğini kullanın.

Ayrıca AddNew ve Delete yöntemlerini kullanarak 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 DataViewtarafından görüntüleneceğini belirtecek şekilde ayarlanabilir.

Not

DataViewiçin sıralama ölçütlerini açıkça belirtmezseniz, DataView içindeki DataRowView nesneleri, dataview'ın DataTable.RowsDataRowCollectionkarşılık gelen DataRow dizinine göre sıralanır.

LINQ to DataSet, geliştiricilerin LINQ kullanarak bir DataSet üzerinde karmaşık, güçlü sorgular oluşturmasına olanak tanır. LinQ to DataSet sorgusu, bağlama senaryosunda kolayca kullanılmayan DataRow nesnelerinin bir numaralandırmasını 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, dize tabanlı filtreleme ve sıralamaya göre çok daha karmaşık ve güçlü filtreleme ve sıralama işlemlerine olanak tanıyan LINQ ifade tabanlı filtreleme ve sıralama sağlayarak DataView işlevselliğini genişletir. 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 DataView sınıfının yeni bir örneğini başlatır.

DataView(DataTable, String, String, DataViewRowState)

belirtilen DataTable, RowFilter, Sortve DataViewRowStateile DataView sınıfının yeni bir örneğini başlatır.

Özellikler

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

yeni satırların AddNew() yöntemi kullanılarak 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, PrimaryKeytarafından belirtilen tüm birincil anahtarlara göre (artan) olur.

Container

Bileşenin kapsayıcısını alır.

(Devralındığı yer: MarshalByValueComponent)
Count

RowFilter ve RowStateFilter uygulandıktan sonra DataView kayıt sayısını alır.

DataViewManager

Bu görünümle ilişkili 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 DataTableveri görünümlerini yansıtan bir değer alır.

Item[Int32]

Belirtilen tablodan bir veri satırı alır.

RowFilter

DataViewhangi satırların görüntüleneceğini filtrelemek için kullanılan ifadeyi alır veya ayarlar.

RowStateFilter

DataViewkullanılan satır durumu filtresini alı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 DataViewiçin sıralama düzenini ayarlar.

Table

kaynak DataTablealır veya ayarlar.

Yöntemler

AddNew()

DataViewyeni bir satır ekler.

BeginInit()

Formda kullanılan veya başka bir bileşen tarafından kullanılan bir DataView başlatmayı başlatır. Başlatma çalışma zamanında gerçekleşir.

Close()

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()

MarshalByValueComponenttarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: MarshalByValueComponent)
Dispose(Boolean)

DataView nesnesi tarafından kullanılan kaynakları (bellek dışında) atar.

EndInit()

Formda kullanılan veya başka bir bileşen tarafından kullanılan bir DataView başlatılmasını sonlandırır. Başlatma çalışma zamanında gerçekleşir.

Equals(DataView)

Belirtilen DataView örneklerinin 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)

DataView belirtilen sıralama anahtarı değerine göre bir satır bulur.

Find(Object[])

DataView belirtilen sıralama anahtarı değerlerine göre bir satır bulur.

FindRows(Object)

Sütunları belirtilen sıralama anahtarı değeriyle eşleşen DataRowView nesne dizisi döndürür.

FindRows(Object[])

Sütunları belirtilen sıralama anahtarı değeriyle eşleşen DataRowView nesne dizisi döndürür.

GetEnumerator()

Bu 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)

IServiceProvideruygulayıcısını alı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)

ListChanged olayını başlatır.

Open()

bir DataViewaçar.

Reset()

Yalnızca dahili kullanım için ayrılmıştır.

ToString()

varsa, Componentadını içeren bir String döndürür. Bu yöntem geçersiz kılınmamalıdır.

(Devralındığı yer: MarshalByValueComponent)
ToTable()

Var olan bir DataViewsatırlarını temel alan yeni bir DataTable oluşturur ve döndürür.

ToTable(Boolean, String[])

Var olan bir DataViewsatırlarını temel alan yeni bir DataTable oluşturur ve döndürür.

ToTable(String)

Var olan bir DataViewsatırlarını temel alan yeni bir DataTable oluşturur ve döndürür.

ToTable(String, Boolean, String[])

Var olan bir DataViewsatırlarını temel alan yeni bir DataTable 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

Disposed

Bileşendeki Disposed olayını dinlemek için bir olay işleyicisi ekler.

(Devralındığı yer: MarshalByValueComponent)
Initialized

DataView başlatma tamamlandığında gerçekleşir.

ListChanged

DataView tarafından yönetilen liste değiştiğ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)

IServiceProvider T türünde bir hizmet alır.

GetKeyedServices(IServiceProvider, Type, Object)

IServiceProvider serviceType türündeki hizmetlerin numaralandırmasını alır.

GetKeyedServices<T>(IServiceProvider, Object)

IServiceProvider T türündeki hizmetlerin numaralandırmasını alır.

GetRequiredKeyedService(IServiceProvider, Type, Object)

IServiceProvider serviceType türünde bir hizmet alır.

GetRequiredKeyedService<T>(IServiceProvider, Object)

IServiceProvider T türünde bir hizmet alır.

CreateAsyncScope(IServiceProvider)

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

CreateScope(IServiceProvider)

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

GetRequiredService(IServiceProvider, Type)

IServiceProvider serviceType türündeki hizmeti alın.

GetRequiredService<T>(IServiceProvider)

IServiceProvider T türündeki hizmeti alın.

GetService<T>(IServiceProvider)

IServiceProvider T türündeki hizmeti alın.

GetServices(IServiceProvider, Type)

IServiceProvider serviceType türündeki hizmetlerin bir numaralandırmasını alın.

GetServices<T>(IServiceProvider)

IServiceProvider T türündeki hizmetlerin bir numaralandırmasını 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)

Bir IEnumerable öğelerini belirtilen türe yayınlar.

OfType<TResult>(IEnumerable)

Bir IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerableIQueryabledö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. Tüm yazma işlemlerini eşitlemeniz gerekir.

Ayrıca bkz.