DataView Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
DataView
için sıralama ölçütlerini açıkça belirtmezseniz, DataView
içindeki DataRowView
nesneleri, dataview'ın DataTable.Rows
DataRowCollection
karşı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ı
Uzantı Metotları
Ş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.
- DataSet
- DataTable
- DataViewManager
- AsDataView
- DataSets, DataTables ve DataViews (ADO.NET)