DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。可以将DataView同数据库的视图类比,不过有点不同,数据库的视图可以跨表建立视图,DataView则只能对某一个DataTable建立视图。DataView一般通过DataTable.DefaultView 属性来建立,再通过RowFilter 属性和RowStateFilter 属性建立这个DataTable的一个子集。
|
public DataView();
public DataView(DataTable);
|
|
DataView dv;
dv = new DataView(theDataSet.Tables["Employees"]);
|
|
DataView dv = new DataView();
dv.Table = theDataSet.Tables["Employees"];
DataView构造函数使你由DataTable中得到一个DataView对象。如果需要,反之亦可。事实上,DataTable对象的DefaultView属性返回一个该表的DataView对象。
DataView dv = dt.DefaultView;
|
|
public virtual string RowFilter {get; set;}
|
|
dv.RowFilter = "Country = 'USA'";
dv.RowFilter = "EmployeeID >5 AND Birthdate < #1/31/82#"
dv.RowFilter = "Description LIKE '*product*'"
|
|
dv.RowFilter = "employeeID IN (2,4,5)"
|
|
dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"
|
|
dv.RowFilter = "Description LIKE 'prod*ct"
|
|
IIF(expression, if_true, if_false)
|
|
IIF(employeeID<6, Len(lastname) %2 =0, Len(lastname) %2 >0)
|
|
Dim dv As New DataView()
dv = ds.Tables("Employees").DefaultView
dv.RowFilter = "employeeid >5"
ListBox1.Items.Clear()
Dim buf As String
Dim dr As DataRowView
For Each dr In dv
buf = ""
buf &= dr("lastname").ToString()& ", " & dr("firstName").ToString()
ListBox1.Items.Add(buf)
Next
|
|
CurrentRows
|
包括所有未更新的、新的和修改的数据行
|
|
Deleted
|
所有自上次调用AcceptChanges后删除的数据行
|
|
ModifiedCurrent
|
所有自上次调用AcceptChanges后修改过的数据行
|
|
ModifiedOriginal
|
所有自上次调用AcceptChanges后original版本的数据行
|
|
New
|
所有自上次调用AcceptChanges后新添加的行
|
|
OriginalRows
|
返回初始数据行,包含unchanged和deleted 的
|
|
Unchanged
|
所有未更新的数据行
|