DataView Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.Rows
DataRowCollection
.
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
Metode Ekstensi
Berlaku untuk
Keamanan Thread
Jenis ini aman untuk operasi baca multithreaded. Anda harus menyinkronkan operasi tulis apa pun.