Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
再谈_Identify
我们知道内部表有一个_Identify,这是一个整数型列,每增加一行,该列的值就会自动加1。
该列的值是只读的,我们没有办法使用常规的代码去修改_Identify值。
可以将_Identify值看作是行的身份证号码,因为新增行一旦保存,其_Identify值将终生不变。
这个“身份证号码”就是主键,系统就是根据这个值来识别不同的行的。
实际使用的时候,我们是看不到_Identify列的,但是可以在代码中使用该列,例如:
Dim
也可以在表达式中使用该列,例如可以增加一个表达式列,将其表达式设为:
[_Identify]
这样既可通过此列查看_Identify的值。
可以看出_Identify除了不可见,使用起来和普通的列并无差别。
_Identify列的值类似行的编号,这个编号表示数据录入的顺序,也就是某个DataRow在DataTable中的顺序。
下面是一个根据输入顺序进行流水账计算的例子,设置在DataColChanged事件中即可:
Select
有一个问题需要明确,很多初学的用户将_Identify等同于下图的行号:
此主题相关图片如下:1029.gif
其实这两者没有任何关系;显然,同一行数据,随着筛选和排序,其行号是不断地变化的,而_Identify列的值是终生不变的。
我们可以这样理解:
1、_Identify表示增加行的顺序,也就是DataRow在DataTable中的顺序,同时也是行的“身份证号码”,终生不变。
2、而上图中的行号,表示Row在Table中的顺序,Row有一个Index属性,返回的就是这个行号,这个行号是动态的,因为同一行数据,在排序和筛选后,其在Table中的位置是会变化的。
沙发,强顶!
晕,沙发没抢到,大过节的还有人蹲守,祝大家节日快乐!
问一句..这个_Identify是有限的吗?它的限制又是多少?按道理无限增加行,这个_Identify总是有限的吧...
问一句..这个_Identify是有限的吗?它的限制又是多少?按道理无限增加行,这个_Identify总是有限的吧...
呵呵,只听说一个国家人口大多了,粮食不够吃了,养不活了,所以要限制人口,没听说一个国家因为身份证号码有限,搞计划生育的。
另,除了听说宇宙是无限的,数据库的行不可能是无限增加的吧。