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 yang sesuaiDataTable. Perubahan pada DataViewdata akan memengaruhi DataTable. Perubahan pada DataTabledata akan 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 DataView objek dibuat dan RowStateFilter diatur pada masing-masing 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 pesanan online yang DataView diurutkan secara total karena 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 adalah DataView memungkinkan pengikatan data pada Formulir Windows dan Forms Web.
Selain itu, DataView dapat disesuaikan untuk menyajikan subset data dari DataTable. Kemampuan ini memungkinkan Anda memiliki dua kontrol yang terikat ke yang sama DataTable, 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. Properti DataTable ini juga memiliki DefaultView properti . Ini mengembalikan default DataView untuk tabel. Misalnya, jika Anda ingin membuat tampilan kustom pada tabel, atur RowFilter pada yang DataView dikembalikan oleh DefaultView.
Untuk membuat tampilan data yang difilter dan diurutkan, atur RowFilter properti dan Sort . Kemudian, gunakan Item[] properti untuk mengembalikan satu DataRowView.
Anda juga dapat menambahkan dan menghapus dari kumpulan baris menggunakan AddNew metode dan Delete . Saat Anda menggunakan metode tersebut RowStateFilter , properti dapat mengatur untuk menentukan bahwa hanya baris yang dihapus atau baris baru yang ditampilkan oleh DataView.
Catatan
Jika Anda tidak secara eksplisit menentukan kriteria pengurutan untuk DataView
, objek di diurutkan DataView
berdasarkan indeks DataView yang sesuai DataRow
di DataTable.Rows
DataRowCollection
.DataRowView
LINQ ke Himpunan Data memungkinkan pengembang untuk membuat kueri yang DataSet kompleks dan kuat melalui dengan menggunakan LINQ. Kueri LINQ ke Himpunan DataRow Data mengembalikan enumerasi objek, 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 dari DataView dengan menyediakan pengurutan dan pemfilteran berbasis ekspresi LINQ, yang memungkinkan operasi penyortiran serta pemfilteran yang jauh lebih kompleks dan kuat daripada penyortiran dan pemfilteran berbasis string. Lihat Pengikatan Data dan LINQ ke Himpunan Data untuk informasi selengkapnya.
Konstruktor
DataView() |
Menginisialisasi instans baru kelas DataView. |
DataView(DataTable) |
Menginisialisasi instans DataView baru kelas dengan yang ditentukan DataTable. |
DataView(DataTable, String, String, DataViewRowState) |
Menginisialisasi instans DataView baru kelas dengan , , RowFilter, Sortdan DataViewRowStateyang ditentukanDataTable. |
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 AddNew() metode . |
ApplyDefaultSort |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan menggunakan pengurutan default. Pengurutan default adalah (naik) oleh semua kunci primer seperti yang ditentukan oleh PrimaryKey. |
Container |
Mendapatkan kontainer untuk komponen. (Diperoleh dari MarshalByValueComponent) |
Count |
Mendapatkan jumlah rekaman setelah DataViewRowFilter dan RowStateFilter telah diterapkan. |
DataViewManager |
Mendapatkan yang DataViewManager 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() |
DataViewMenutup . |
ColumnCollectionChanged(Object, CollectionChangeEventArgs) |
Terjadi setelah DataColumnCollection berhasil diubah. |
CopyTo(Array, Int32) |
Menyalin item ke dalam array. Hanya untuk Antarmuka Forms Web. |
Delete(Int32) |
Menghapus baris pada indeks yang ditentukan. |
Dispose() |
Merilis semua sumber daya yang MarshalByValueComponentdigunakan oleh . (Diperoleh dari MarshalByValueComponent) |
Dispose(Boolean) |
Membuang sumber daya (selain memori) yang DataView digunakan oleh objek . |
EndInit() |
Mengakhiri inisialisasi DataView yang digunakan pada formulir atau digunakan oleh komponen lain. Inisialisasi terjadi pada runtime. |
Equals(DataView) |
Menentukan apakah instans yang ditentukan DataView dianggap sama. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Find(Object) |
Menemukan baris di DataView menurut nilai kunci pengurutan yang ditentukan. |
Find(Object[]) |
Menemukan baris di DataView menurut nilai kunci pengurutan yang ditentukan. |
FindRows(Object) |
Mengembalikan array DataRowView objek yang kolomnya cocok dengan nilai kunci pengurutan yang ditentukan. |
FindRows(Object[]) |
Mengembalikan array DataRowView objek yang kolomnya cocok dengan nilai kunci pengurutan yang ditentukan. |
GetEnumerator() |
Mendapatkan enumerator untuk ini DataView. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetService(Type) |
Mendapatkan pelaksana dari IServiceProvider. (Diperoleh dari MarshalByValueComponent) |
GetType() |
Mendapatkan instans Type saat ini. (Diperoleh dari Object) |
IndexListChanged(Object, ListChangedEventArgs) |
Terjadi setelah DataView berhasil diubah. |
MemberwiseClone() |
Membuat salinan dangkal dari yang saat ini Object. (Diperoleh dari Object) |
OnListChanged(ListChangedEventArgs) |
Memunculkan kejadian ListChanged. |
Open() |
DataViewMembuka . |
Reset() |
Dicadangkan untuk penggunaan internal saja. |
ToString() |
Mengembalikan yang String berisi nama Component, jika ada. Metode ini tidak boleh ditimpa. (Diperoleh dari MarshalByValueComponent) |
ToTable() |
Membuat dan mengembalikan baru DataTable berdasarkan baris di yang sudah ada DataView. |
ToTable(Boolean, String[]) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di yang sudah ada DataView. |
ToTable(String) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di yang sudah ada DataView. |
ToTable(String, Boolean, String[]) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di yang sudah ada DataView. |
UpdateIndex() |
Dicadangkan untuk penggunaan internal saja. |
UpdateIndex(Boolean) |
Dicadangkan untuk penggunaan internal saja. |
Acara
Disposed |
Menambahkan penanganan aktivitas untuk mendengarkan Disposed peristiwa pada komponen. (Diperoleh dari MarshalByValueComponent) |
Initialized |
Terjadi ketika inisialisasi DataView selesai. |
ListChanged |
Terjadi ketika daftar yang dikelola oleh DataView perubahan. |
Implementasi Antarmuka Eksplisit
Metode Ekstensi
Berlaku untuk
Keamanan Thread
Jenis ini aman untuk operasi baca multithreaded. Anda harus menyinkronkan operasi tulis apa pun.
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk