以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助][_Identify] 是固定不变的嘛? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12712) |
-- 作者:gaoyong30000 -- 发布时间:2011/9/12 10:30:00 -- [求助][_Identify] 是固定不变的嘛? 加入 有5行数据 假设 [_Identify] 分别为1,2,3,4,5 如果删除了第三行 其它四行为 1,2,4,5? 不会变成 1,2,3,4? |
-- 作者:ybil -- 发布时间:2011/9/12 10:44:00 -- 你连这个都不知道,谈何编程啊? |
-- 作者:gaoyong30000 -- 发布时间:2011/9/12 11:17:00 -- 没接触过啊! 现在遇到这个问题了~~ |
-- 作者:ybil -- 发布时间:2011/9/12 11:20:00 -- 以下是引用gaoyong30000在2011-9-12 11:17:00的发言: 没接触过啊! 现在遇到这个问题了~~ 什么是主键 对于数据管理来说,主键是一个非常重要的概念。 我们每个人都有一个身份证号码,每个身份证号码都是唯一的,在正常情况下,不会再有其他人的身份证号码与你相同,这个号码就是我们的“身份标识”,是社会生活能有序进行的基础。 在设计表的时候,应该指定一列用于存储行的主键值,这一列就是主键列。 我们已经知道,Foxtable的内部表,有一个名为“_Identify”的列,这就是内部表的主键列,每增加一行,该列的值就会自动在上一行的基础上加1,所以对于每一行来说,_Identify列的值都不会相同,是有效的“身份标识”。 内部表的主键列是自动增加的,如果使用外部表,那么必须手工增加主键列。 关于外部表的主键,我们建议:尽量使用自动增量列(也称为自动编号),由系统自动生成编号。 如果主键为自动增量列,那么外部表和内部表在实际使用的时候,表现将完全一样,用户将感受不到任何的差别。 如果主键列不是自动增量列,则每次只能增加一行,且必须输入新增行的主键列内容才能增加下一行。 如果你希望外部表的主键列能够象内部表一样自动隐藏,可以将主键列的名称设置为“_Identify”。 再谈_Identify 我们知道内部表有一个_Identify,这是一个整数型列,每增加一行,该列的值就会自动加1。 实际使用的时候,我们是看不到_Identify列的,但是可以在代码中使用该列,例如: Dim id1 As Integer = Tables("订单").Current("_Identify") 也可以在表达式中使用该列,例如可以增加一个表达式列,将其表达式设为: [_Identify] 这样即可通过此列查看_Identify的值。 _Identify值类似行的编号,这个编号表示数据录入的顺序,也就是某个DataRow在DataTable中的顺序。 Dim
Val1
As
Double 有一个问题需要明确,很多初学的用户将_Identify等同于下图的行号: 其实这两者没有任何关系;显然,同一行数据,随着筛选和排序,其行号是不断地变化的,而_Identify列的值是终生不变的。 |
-- 作者:gaoyong30000 -- 发布时间:2011/9/12 11:48:00 -- 哦 明白了~ |