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 tampilan yang DataTablesesuai . 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 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 adalah DataView 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 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 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 di diurutkan DataView berdasarkan indeks DataView yang sesuai DataRow di DataTable.RowsDataRowCollection.DataRowView
LINQ ke Himpunan Data memungkinkan pengembang untuk membuat kueri yang kompleks dan kuat melalui dengan DataSet menggunakan LINQ. Kueri LINQ ke DataSet mengembalikan enumerasi DataRow 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 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
| Nama | Deskripsi |
|---|---|
| DataView() |
Menginisialisasi instans baru dari kelas DataView. |
| DataView(DataTable, String, String, DataViewRowState) |
Menginisialisasi instans DataView baru kelas dengan yang ditentukan DataTable, , RowFilterSort, dan DataViewRowState. |
| DataView(DataTable) |
Menginisialisasi instans DataView baru kelas dengan yang ditentukan DataTable. |
Properti
| Nama | Deskripsi |
|---|---|
| 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 utama seperti yang ditentukan oleh PrimaryKey. |
| Container |
Mendapatkan kontainer untuk komponen. (Diperoleh dari MarshalByValueComponent) |
| Count |
Mendapatkan jumlah rekaman dalam DataView setelah RowFilter 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 DataViewurutan untuk . |
| Table |
Mendapatkan atau mengatur sumber DataTable. |
Metode
| Nama | Deskripsi |
|---|---|
| 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 Formulir 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 dalam DataView menurut nilai kunci pengurutan yang ditentukan. |
| Find(Object[]) |
Menemukan baris menurut DataView 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 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 ListChanged acara. |
| Open() |
DataViewMembuka . |
| Reset() |
Hanya dicadangkan untuk penggunaan internal. |
| 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 DataView. |
| ToTable(Boolean, String[]) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di DataView. |
| ToTable(String, Boolean, String[]) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di DataView. |
| ToTable(String) |
Membuat dan mengembalikan baru DataTable berdasarkan baris di DataView. |
| UpdateIndex() |
Hanya dicadangkan untuk penggunaan internal. |
| UpdateIndex(Boolean) |
Hanya dicadangkan untuk penggunaan internal. |
Acara
| Nama | Deskripsi |
|---|---|
| Disposed |
Menambahkan penanganan aktivitas untuk mendengarkan Disposed peristiwa pada komponen. (Diperoleh dari MarshalByValueComponent) |
| Initialized |
Terjadi ketika inisialisasi DataView selesai. |
| ListChanged |
Terjadi ketika daftar dikelola oleh DataView perubahan. |
Implementasi Antarmuka Eksplisit
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| AsParallel(IEnumerable) |
Mengaktifkan paralelisasi kueri. |
| AsQueryable(IEnumerable) |
Mengonversi IEnumerable menjadi IQueryable. |
| Cast<TResult>(IEnumerable) |
Melemparkan elemen IEnumerable ke jenis yang ditentukan. |
| OfType<TResult>(IEnumerable) |
Memfilter elemen IEnumerable berdasarkan jenis tertentu. |
Berlaku untuk
Keamanan Thread
Jenis ini aman untuk operasi baca multithreaded. Anda harus menyinkronkan operasi tulis apa pun.