Bagikan melalui


DataView Kelas

Definisi

Mewakili tampilan DataTable yang dapat dikustomisasi data untuk pengurutan, pemfilteran, pencarian, pengeditan, dan navigasi. DataView tidak menyimpan data, tetapi sebaliknya mewakili tampilan terhubung dari DataTableyang sesuai. Perubahan pada data DataViewakan memengaruhi DataTable. Perubahan pada data DataTableakan memengaruhi semua DataViewyang terkait dengannya.

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
Warisan
Penerapan

Contoh

Contoh berikut membuat satu DataTable dengan satu kolom dan lima baris. Dua objek DataView dibuat dan RowStateFilter diatur pada masing-masing objek untuk menampilkan tampilan data tabel yang berbeda. Nilai kemudian dicetak.

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

Contoh berikut membuat DataView pesanan online yang dipesan berdasarkan total yang jatuh tempo dari kueri LINQ ke Himpunan Data:

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

Keterangan

Fungsi utama DataView adalah memungkinkan pengikatan data pada Formulir Windows dan Formulir Web.

Selain itu, DataView dapat disesuaikan untuk menyajikan subset data dari DataTable. Kemampuan ini memungkinkan Anda memiliki dua kontrol yang terikat ke DataTableyang sama, tetapi yang menunjukkan versi data yang berbeda. Misalnya, satu kontrol mungkin terikat ke DataView yang memperlihatkan semua baris dalam tabel, dan satu detik mungkin dikonfigurasi untuk hanya menampilkan baris yang telah dihapus dari DataTable. DataTable juga memiliki properti DefaultView. Ini mengembalikan DataView default untuk tabel. Misalnya, jika Anda ingin membuat tampilan kustom pada tabel, atur RowFilter pada DataView yang dikembalikan oleh DefaultView.

Untuk membuat tampilan data yang difilter dan diurutkan, atur properti RowFilter dan Sort. Kemudian, gunakan properti Item[] untuk mengembalikan satu DataRowView.

Anda juga dapat menambahkan dan menghapus dari kumpulan baris menggunakan metode AddNew dan Delete. Saat Anda menggunakan metode tersebut, properti RowStateFilter dapat diatur untuk menentukan bahwa hanya baris yang dihapus atau baris baru yang ditampilkan oleh DataView.

Nota

Jika Anda tidak secara eksplisit menentukan kriteria pengurutan untuk DataView, objek DataRowView di DataView diurutkan berdasarkan indeks DataRow terkait DataView di DataTable.RowsDataRowCollection.

LINQ ke DataSet memungkinkan pengembang untuk membuat kueri yang kompleks dan kuat melalui DataSet dengan menggunakan LINQ. Kueri LINQ ke DataSet mengembalikan enumerasi objek DataRow, namun, yang tidak mudah digunakan dalam skenario pengikatan. DataView dapat dibuat dari kueri LINQ ke Himpunan Data dan mengambil karakteristik pemfilteran dan pengurutan kueri tersebut. LINQ ke DataSet memperluas fungsionalitas DataView dengan menyediakan pemfilteran dan pengurutan berbasis ekspresi LINQ, yang memungkinkan operasi pemfilteran dan pengurutan yang jauh lebih kompleks dan kuat daripada pemfilteran dan pengurutan berbasis string. Lihat Pengikatan Data dan LINQ ke Himpunan Data untuk informasi selengkapnya.

Konstruktor

DataView()

Menginisialisasi instans baru kelas DataView.

DataView(DataTable)

Menginisialisasi instans baru kelas DataView dengan DataTableyang ditentukan .

DataView(DataTable, String, String, DataViewRowState)

Menginisialisasi instans baru kelas DataView dengan DataTable, RowFilter, Sort, dan DataViewRowStateyang ditentukan .

Properti

AllowDelete

Mendapatkan atau menetapkan nilai yang menunjukkan apakah penghapusan diizinkan.

AllowEdit

Mendapatkan atau menetapkan nilai yang menunjukkan apakah pengeditan diizinkan.

AllowNew

Mendapatkan atau menetapkan nilai yang menunjukkan apakah baris baru dapat ditambahkan dengan menggunakan metode AddNew().

ApplyDefaultSort

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan menggunakan pengurutan default. Pengurutan default adalah (naik) oleh semua kunci utama seperti yang ditentukan oleh PrimaryKey.

Container

Mendapatkan kontainer untuk komponen.

(Diperoleh dari MarshalByValueComponent)
Count

Mendapatkan jumlah rekaman dalam DataView setelah RowFilter dan RowStateFilter diterapkan.

DataViewManager

Mendapatkan DataViewManager yang terkait dengan tampilan ini.

DesignMode

Mendapatkan nilai yang menunjukkan apakah komponen saat ini dalam mode desain.

(Diperoleh dari MarshalByValueComponent)
Events

Mendapatkan daftar penanganan aktivitas yang dilampirkan ke komponen ini.

(Diperoleh dari MarshalByValueComponent)
IsInitialized

Mendapatkan nilai yang menunjukkan apakah komponen diinisialisasi.

IsOpen

Mendapatkan nilai yang menunjukkan apakah sumber data saat ini terbuka dan memproyeksikan tampilan data pada DataTable.

Item[Int32]

Mendapatkan baris data dari tabel tertentu.

RowFilter

Mendapatkan atau mengatur ekspresi yang digunakan untuk memfilter baris mana yang ditampilkan di DataView.

RowStateFilter

Mendapatkan atau mengatur filter status baris yang digunakan dalam DataView.

Site

Mendapatkan atau mengatur situs komponen.

(Diperoleh dari MarshalByValueComponent)
Sort

Mendapatkan atau mengatur kolom atau kolom pengurutan, dan mengurutkan urutan untuk DataView.

Table

Mendapatkan atau mengatur sumber DataTable.

Metode

AddNew()

Menambahkan baris baru ke DataView.

BeginInit()

Memulai inisialisasi DataView yang digunakan pada formulir atau digunakan oleh komponen lain. Inisialisasi terjadi pada runtime.

Close()

Menutup DataView.

ColumnCollectionChanged(Object, CollectionChangeEventArgs)

Terjadi setelah DataColumnCollection berhasil diubah.

CopyTo(Array, Int32)

Menyalin item ke dalam array. Hanya untuk Antarmuka Formulir Web.

Delete(Int32)

Menghapus baris pada indeks yang ditentukan.

Dispose()

Merilis semua sumber daya yang digunakan oleh MarshalByValueComponent.

(Diperoleh dari MarshalByValueComponent)
Dispose(Boolean)

Membuang sumber daya (selain memori) yang digunakan oleh objek DataView.

EndInit()

Mengakhiri inisialisasi DataView yang digunakan pada formulir atau digunakan oleh komponen lain. Inisialisasi terjadi pada runtime.

Equals(DataView)

Menentukan apakah instans DataView yang ditentukan dianggap sama.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Find(Object)

Menemukan baris dalam DataView menurut nilai kunci pengurutan yang ditentukan.

Find(Object[])

Menemukan baris dalam DataView menurut nilai kunci pengurutan yang ditentukan.

FindRows(Object)

Mengembalikan array objek DataRowView yang kolomnya cocok dengan nilai kunci pengurutan yang ditentukan.

FindRows(Object[])

Mengembalikan array objek DataRowView yang kolomnya cocok dengan nilai kunci pengurutan yang ditentukan.

GetEnumerator()

Mendapatkan enumerator untuk DataViewini.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetService(Type)

Mendapatkan pelaksana IServiceProvider.

(Diperoleh dari MarshalByValueComponent)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
IndexListChanged(Object, ListChangedEventArgs)

Terjadi setelah DataView berhasil diubah.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
OnListChanged(ListChangedEventArgs)

Menaikkan peristiwa ListChanged.

Open()

Membuka DataView.

Reset()

Hanya dicadangkan untuk penggunaan internal.

ToString()

Mengembalikan String yang berisi nama Component, jika ada. Metode ini tidak boleh ditimpa.

(Diperoleh dari MarshalByValueComponent)
ToTable()

Membuat dan mengembalikan DataTable baru berdasarkan baris di DataViewyang sudah ada.

ToTable(Boolean, String[])

Membuat dan mengembalikan DataTable baru berdasarkan baris di DataViewyang sudah ada.

ToTable(String)

Membuat dan mengembalikan DataTable baru berdasarkan baris di DataViewyang sudah ada.

ToTable(String, Boolean, String[])

Membuat dan mengembalikan DataTable baru berdasarkan baris di DataViewyang sudah ada.

UpdateIndex()

Hanya dicadangkan untuk penggunaan internal.

UpdateIndex(Boolean)

Hanya dicadangkan untuk penggunaan internal.

Acara

Disposed

Menambahkan penanganan aktivitas untuk mendengarkan peristiwa Disposed pada komponen.

(Diperoleh dari MarshalByValueComponent)
Initialized

Terjadi ketika inisialisasi DataView selesai.

ListChanged

Terjadi ketika daftar yang dikelola oleh DataView berubah.

Implementasi Antarmuka Eksplisit

IBindingList.AddIndex(PropertyDescriptor)

Untuk deskripsi anggota ini, lihat AddIndex(PropertyDescriptor).

IBindingList.AddNew()

Untuk deskripsi anggota ini, lihat AddNew().

IBindingList.AllowEdit

Untuk deskripsi anggota ini, lihat AllowEdit.

IBindingList.AllowNew

Untuk deskripsi anggota ini, lihat AllowNew.

IBindingList.AllowRemove

Untuk deskripsi anggota ini, lihat AllowRemove.

IBindingList.ApplySort(PropertyDescriptor, ListSortDirection)

Untuk deskripsi anggota ini, lihat ApplySort(PropertyDescriptor, ListSortDirection).

IBindingList.Find(PropertyDescriptor, Object)

Untuk deskripsi anggota ini, lihat Find(PropertyDescriptor, Object).

IBindingList.IsSorted

Untuk deskripsi anggota ini, lihat IsSorted.

IBindingList.RemoveIndex(PropertyDescriptor)

Untuk deskripsi anggota ini, lihat RemoveIndex(PropertyDescriptor).

IBindingList.RemoveSort()

Untuk deskripsi anggota ini, lihat RemoveSort().

IBindingList.SortDirection

Untuk deskripsi anggota ini, lihat SortDirection.

IBindingList.SortProperty

Untuk deskripsi anggota ini, lihat SortProperty.

IBindingList.SupportsChangeNotification

Untuk deskripsi anggota ini, lihat SupportsChangeNotification.

IBindingList.SupportsSearching

Untuk deskripsi anggota ini, lihat SupportsSearching.

IBindingList.SupportsSorting

Untuk deskripsi anggota ini, lihat SupportsSorting.

IBindingListView.ApplySort(ListSortDescriptionCollection)

Untuk deskripsi anggota ini, lihat ApplySort(ListSortDescriptionCollection).

IBindingListView.Filter

Untuk deskripsi anggota ini, lihat Filter.

IBindingListView.RemoveFilter()

Untuk deskripsi anggota ini, lihat RemoveFilter().

IBindingListView.SortDescriptions

Untuk deskripsi anggota ini, lihat SortDescriptions.

IBindingListView.SupportsAdvancedSorting

Untuk deskripsi anggota ini, lihat SupportsAdvancedSorting.

IBindingListView.SupportsFiltering

Untuk deskripsi anggota ini, lihat SupportsFiltering.

ICollection.IsSynchronized

Untuk deskripsi anggota ini, lihat IsSynchronized.

ICollection.SyncRoot

Untuk deskripsi anggota ini, lihat SyncRoot.

IList.Add(Object)

Untuk deskripsi anggota ini, lihat Add(Object).

IList.Clear()

Untuk deskripsi anggota ini, lihat Clear().

IList.Contains(Object)

Untuk deskripsi anggota ini, lihat Contains(Object).

IList.IndexOf(Object)

Untuk deskripsi anggota ini, lihat IndexOf(Object).

IList.Insert(Int32, Object)

Untuk deskripsi anggota ini, lihat Insert(Int32, Object).

IList.IsFixedSize

Untuk deskripsi anggota ini, lihat IsFixedSize.

IList.IsReadOnly

Untuk deskripsi anggota ini, lihat IsReadOnly.

IList.Item[Int32]

Untuk deskripsi anggota ini, lihat Item[Int32].

IList.Remove(Object)

Untuk deskripsi anggota ini, lihat Remove(Object).

IList.RemoveAt(Int32)

Untuk deskripsi anggota ini, lihat RemoveAt(Int32).

ITypedList.GetItemProperties(PropertyDescriptor[])

Untuk deskripsi anggota ini, lihat GetItemProperties(PropertyDescriptor[]).

ITypedList.GetListName(PropertyDescriptor[])

Untuk deskripsi anggota ini, lihat GetListName(PropertyDescriptor[]).

Metode Ekstensi

GetKeyedService<T>(IServiceProvider, Object)

Mendapatkan layanan jenis T dari IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Mendapatkan enumerasi layanan jenis serviceType dari IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Mendapatkan enumerasi layanan jenis T dari IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Mendapatkan layanan jenis serviceType dari IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Mendapatkan layanan jenis T dari IServiceProvider.

CreateAsyncScope(IServiceProvider)

Membuat AsyncServiceScope baru yang dapat digunakan untuk mengatasi layanan terlingkup.

CreateScope(IServiceProvider)

Membuat IServiceScope baru yang dapat digunakan untuk mengatasi layanan terlingkup.

GetRequiredService(IServiceProvider, Type)

Dapatkan layanan jenis serviceType dari IServiceProvider.

GetRequiredService<T>(IServiceProvider)

Dapatkan layanan jenis T dari IServiceProvider.

GetService<T>(IServiceProvider)

Dapatkan layanan jenis T dari IServiceProvider.

GetServices(IServiceProvider, Type)

Dapatkan enumerasi layanan jenis serviceType dari IServiceProvider.

GetServices<T>(IServiceProvider)

Dapatkan enumerasi layanan jenis T dari IServiceProvider.

GetFakeLogCollector(IServiceProvider)

Mendapatkan objek yang mengumpulkan rekaman log yang dikirim ke pencatat palsu.

GetFakeRedactionCollector(IServiceProvider)

Mendapatkan instans pengumpul redactor palsu dari kontainer injeksi dependensi.

Cast<TResult>(IEnumerable)

Melemparkan elemen IEnumerable ke jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen IEnumerable berdasarkan jenis tertentu.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi IEnumerable menjadi IQueryable.

Berlaku untuk

Keamanan Thread

Jenis ini aman untuk operasi baca multithreaded. Anda harus menyinkronkan operasi tulis apa pun.

Lihat juga