vb.net环形状态 vbnet process

vb.net dataview 的用法定制数据视图
DataView类用来表示定制的DataTable的视图 。DataTable和DataView的关系是遵循著名的设计模式--文档/视图模式,其中DataTable是文档,而Dataview是视图 。
在任何时候 , 你都可以有多个基于相同数据的不同的视图 。更重要的是,你可以对每一个具有自己一套属性、方法、事件的视图作为独立的对象进行处理 。这也代表了相对ADO一个巨大的飞跃 。
创建DataView
public DataView();
public DataView(DataTable);
DataView只有同已经存在的、很可能是非空的DataTable对象连接后才可用 。通常,这个连接在构造时就指定了 。
DataView dv;
dv = new DataView(theDataSet.Tables["Employees"]);
但是,你也可以先创建一个新的视图,然后再用Table属性同表相关联 。
DataView dv = new DataView();
dv.Table = theDataSet.Tables["Employees"];
DataView构造函数使你由DataTable中得到一个DataView对象 。如果需要,反之亦可 。事实上,DataTable对象的DefaultView属性返回一个该表的DataView对象 。
DataView dv = dt.DefaultView;
一旦你有了DataView对象,你可以利用它的属性来建立你希望用户见到的数据行集 。一般,你可以使用下列属性:
RowFilter
Sort
【vb.net环形状态 vbnet process】前者可以定制视图中可见数据应匹配的规则 。而后者通过表达式来进行排序 。当然你可以使用这两者的任意组合 。
设置过滤 RowFilter是一个可读写的属性,用来读取和设置表过滤的表达式 。
public virtual string RowFilter {get; set;}
你可以用列名 , 逻辑和数字运算符和常量的任意合法组合组成表达式 。以下是一些例子:
dv.RowFilter = "Country = 'USA'";
dv.RowFilter = "EmployeeID 5 AND Birthdate#1/31/82#"
dv.RowFilter = "Description LIKE '*product*'"
让我们来看一下过滤器的基本规则和运算符 。
过滤字符串是表达式的逻辑连接 。可以用AND,OR,NOT来连接成一个较短的表达式,也可以使用圆括号来组成子句,指定优先的运算 。
通常包含列名的子句同字母、数字、日期或另一个列名进行比较 。这里,可以使用关系运算符和算术运算符,如=, , , +, *, % (取模)等等 。
如果要选取的行并不能方便地通过算术或逻辑运算符表达,你可以使用IN操作符 。以下代码显示如何选取一个随机行:
dv.RowFilter = "employeeID IN (2,4,5)"
你也可以使用通配符*和% , 它们同LIKE运算符一起使用时显得更有用 。它们都表示任意数量的字符,可以相互替代使用 。
请注意 , 如果在LIKE子句中已经有了*或%字符,你必须用方括号将其括起 , 以免歧义 。如果很不幸,字符串中方括号本身也存在了,那么它也必须用将本身括起 。这样,匹配语句会如下所示:
dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"
通配符只允许在过滤字符串的开头或结尾处使用 , 而不能在字符串中间出现 。例如,下列语句会产生运行时错误:
dv.RowFilter = "Description LIKE 'prod*ct"
字符串必须以单引号括起,而日期型必须以#符号括起 。字符型值可以使用小数点和科学计数法 。
RowFilter也支持聚合函数,如SUM, COUNT, MIN,MAX, and AVG 。如果表中没有数据行,那么函数将返回NULL 。
在介绍RowFilter表达式的最后 , 让我们讨论三个很便利的函数:Len , IIF和Substring 。
正如其名,Len()返回特定表达式的长度 。该表达式可以是一个列名,也可以是其他合法的表达式 。
Substring()返回指定的表达式自特定位置开始,特定长度的字符子串 。

推荐阅读