DataView,DataRowView的用法(转载)

        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();
原文地址:https://www.cnblogs.com/sdpdf/p/4322505.html