DataView类用来表示定制的DataTable的视图。 DataTable和DataView的关系是遵循著名的设计模式--文档/视图模式,其中DataTable是文档,而Dataview是视图。 DataView的Table属性指向相应的数据表,但DataTable并不保存过滤信息。既是对DataView改变之后,DataTable表并不会发生任何变化。 DataView一般通过DataTable.DefaultView 属性来建立,再通过RowFilter 属性RowStateFilter 属性建立这个DataTable的一个子集。 1. RowFilter 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)"; /*可以使用通配符*和%,它们同LIKE运算符一起使用时显得更有用。它们都表示任意数量的字符,可以相互替代使用。 请注意,如果在LIKE子句中已经有了*或%字符,你必须用方括号将其括起,以免歧义。如果很不幸,字符串中方括号本身也存在了,那么它也必须用将本身括起。*/ dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"; /*Len,IIF和Substring Len()返回特定表达式的长度。该表达式可以是一个列名,也可以是其他合法的表达式。 Substring()返回指定的表达式自特定位置开始,特定长度的字符子串。 */ IIF(expression, if_true, if_false) IIF(employeeID<6, Len(lastname) %2 =0, Len(lastname) %2 >0) 2. Sort //以下代码示例禁用通过 DataView 删除行的功能,并使用 DataView 向基础表中添加新行。 DataTable custTable = custDS.Tables["Customers"]; DataView custView = custTable.DefaultView; //排序 custView.Sort = "CompanyName"; custView.AllowDelete = false; DataRowView newDRV = custView.AddNew(); newDRV["CustomerID"] = "ABCDE"; newDRV["CompanyName"] = "ABC Products"; newDRV.EndEdit();