2024年3月31日发(作者:)

DataView数据视图类

表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。

DataView的功能类似于数据库的视图,他是数据源DataTable的封装对象,可以对数据源进行排序、搜索、

过滤等处理功能,一旦DataView绑定了数据源DataTable的话,如果此时,DataTable中的数据内容发

生变化后,那么DataView也随之发生变化。

注意:

如果不显式指定 DataView 的排序条件,将按 DataView 的相应 DataRow 在

taRowCollection 中的索引来对 DataView 中的

DataRowView 对象进行排序。

应用实例01:

///

/// teFilter

/// 根据RowStateFilter的行的状态作为过滤条件,进行筛选过滤

///

private void DataViewTest02()

{

//如果将 RowStateFilter 设置为 ModifiedCurrent 或 CurrentRows,新行也将是可见的。

//如果将 RowStateFilter 设置为 ModifiedOriginal 和 OriginalRows,已删除的行也将是

可见的。

DataTable dataTable = new DataTable("dataTable");

DataColumn dataColumn = new DataColumn("dataColumn");

(dataColumn);

DataRow dataRow;

for (int i = 0; i < 10; i++)

{

dataRow = ();

dataRow["dataColumn"] = "item " + i;

(dataRow);

}

Changes();

// Create a DataView with the table.

DataView dataView = new DataView(dataTable);

// Change one row's value:

[1]["dataColumn"] = "Hello";

// Add one row:

dataRow = ();

dataRow["dataColumn"] = "World";

(dataRow);

//设置dataview显示的过滤条件,下面的条件是只显示添加或者修改的内容

teFilter = |

edCurrent;

[1].Delete();

[2].Delete();

[3].Delete();

//设置dataview显示的过滤条件,下面的条件是只显示被删除的内容

teFilter = d;

urce = dataView;

nd();

//设置dataview显示的过滤条件,下面的条件是只显更改行与新行、已修改行、当前行

teFilter = tRows;

urce = dataView;

nd();

//设置dataview显示的过滤条件,未更改的行

teFilter = ged;

urce = dataView;

nd();

//设置dataview显示的过滤条件,未更改行,已删除行

teFilter = alRows;

urce = dataView;

nd();

}

应用实例02:

///

/// ter 按查询条件,将DataView中的内容检索出来

/// ("排序列对应列中的任意值") 返回结果是检索出的行索引号

/// DataRowView[] foundRows = ws(new object[] { "1", "山东" }); 按排序定义

的列顺序,查找符合条件的行集合

/// 需要与排序列定义的数目与顺序一致。

///

private void DataViewRowFilter()

{

DataTable dt = new DataTable();

("cityName");