DataView 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
- 상속
- 구현
예제
다음 예제에서는 하나의 열과 5개의 행이 있는 단일 DataTable 만듭니다. 두 개의 DataView 개체가 만들어지고 테이블 데이터의 서로 다른 보기를 표시하도록 RowStateFilter 각각에 설정됩니다. 그런 다음 값이 인쇄됩니다.
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
다음 예제에서는 LINQ to DataSet 쿼리로 인해 주문한 온라인 주문의 DataView 만듭니다.
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
설명
DataView 주요 기능은 Windows Forms와 Web Forms 모두에서 데이터 바인딩을 허용하는 것입니다.
또한 DataTable데이터의 하위 집합을 표시하도록 DataView 사용자 지정할 수 있습니다. 이 기능을 사용하면 동일한 DataTable바인딩된 두 개의 컨트롤을 사용할 수 있지만 다른 버전의 데이터를 표시합니다. 예를 들어 한 컨트롤은 테이블의 모든 행을 표시하는 DataView 바인딩될 수 있으며, 두 번째 컨트롤은 DataTable삭제된 행만 표시하도록 구성될 수 있습니다. DataTable DefaultView 속성도 있습니다. 그러면 테이블에 대한 기본 DataView 반환됩니다. 예를 들어 테이블에 사용자 지정 보기를 만들려면 DefaultView반환된 DataViewRowFilter 설정합니다.
필터링되고 정렬된 데이터 보기를 만들려면 RowFilter 및 Sort 속성을 설정합니다. 그런 다음 Item[] 속성을 사용하여 단일 DataRowView반환합니다.
AddNew 및 Delete 메서드를 사용하여 행 집합에서 추가 및 삭제할 수도 있습니다. 이러한 메서드를 사용하는 경우 RowStateFilter 속성을 설정하여 삭제된 행 또는 새 행만 DataView표시하도록 지정할 수 있습니다.
메모
DataView
대한 정렬 조건을 명시적으로 지정하지 않으면 DataView
DataRowView
개체는 DataTable.Rows
DataRowCollection
DataView의 해당 DataRow
인덱스 기준으로 정렬됩니다.
LINQ to DataSet을 사용하면 개발자가 LINQ를 사용하여 DataSet 대해 복잡하고 강력한 쿼리를 만들 수 있습니다. 그러나 LINQ to DataSet 쿼리는 바인딩 시나리오에서 쉽게 사용할 수 없는 DataRow 개체의 열거형을 반환합니다. linQ to DataSet 쿼리에서 DataView 만들 수 있으며 해당 쿼리의 필터링 및 정렬 특성을 사용합니다. LINQ to DataSet은 LINQ 식 기반 필터링 및 정렬을 제공하여 DataView 기능을 확장하므로 문자열 기반 필터링 및 정렬보다 훨씬 더 복잡하고 강력한 필터링 및 정렬 작업을 수행할 수 있습니다. 자세한 내용은 데이터 바인딩 및 LINQ to DataSet 참조하세요.
생성자
DataView() |
DataView 클래스의 새 인스턴스를 초기화합니다. |
DataView(DataTable) | |
DataView(DataTable, String, String, DataViewRowState) |
지정된 DataTable, RowFilter, Sort및 DataViewRowState사용하여 DataView 클래스의 새 인스턴스를 초기화합니다. |
속성
AllowDelete |
삭제가 허용되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowEdit |
편집이 허용되는지 여부를 나타내는 값을 가져오거나 설정합니다. |
AllowNew |
AddNew() 메서드를 사용하여 새 행을 추가할 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다. |
ApplyDefaultSort |
기본 정렬을 사용할지 여부를 나타내는 값을 가져오거나 설정합니다. 기본 정렬은 PrimaryKey지정한 모든 기본 키에 의한 오름차순입니다. |
Container |
구성 요소의 컨테이너를 가져옵니다. (다음에서 상속됨 MarshalByValueComponent) |
Count |
RowFilter 및 RowStateFilter 적용된 후 DataView 레코드 수를 가져옵니다. |
DataViewManager |
이 뷰와 연결된 DataViewManager 가져옵니다. |
DesignMode |
구성 요소가 현재 디자인 모드에 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 MarshalByValueComponent) |
Events |
이 구성 요소에 연결된 이벤트 처리기 목록을 가져옵니다. (다음에서 상속됨 MarshalByValueComponent) |
IsInitialized |
구성 요소가 초기화되는지 여부를 나타내는 값을 가져옵니다. |
IsOpen |
데이터 원본이 현재 열려 있는지 여부를 나타내는 값을 가져오고 DataTable데이터의 뷰를 프로젝팅합니다. |
Item[Int32] |
지정된 테이블에서 데이터 행을 가져옵니다. |
RowFilter |
DataView표시되는 행을 필터링하는 데 사용되는 식을 가져오거나 설정합니다. |
RowStateFilter |
DataView사용되는 행 상태 필터를 가져오거나 설정합니다. |
Site |
구성 요소의 사이트를 가져오거나 설정합니다. (다음에서 상속됨 MarshalByValueComponent) |
Sort |
열 또는 열 정렬을 가져오거나 설정하고 DataView정렬 순서를 설정합니다. |
Table |
소스 DataTable가져오거나 설정합니다. |
메서드
이벤트
Disposed |
구성 요소에서 Disposed 이벤트를 수신 대기하는 이벤트 처리기를 추가합니다. (다음에서 상속됨 MarshalByValueComponent) |
Initialized |
DataView 초기화가 완료되면 발생합니다. |
ListChanged |
DataView 관리되는 목록이 변경되면 발생합니다. |
명시적 인터페이스 구현
확장 메서드
적용 대상
스레드 보안
이 형식은 다중 스레드 읽기 작업에 안전합니다. 모든 쓰기 작업을 동기화해야 합니다.
추가 정보
.NET