Foxtable(狐表)用户栏目专家坐堂 → DataTable和Table区别的通俗说法


  共有20969人关注过本帖树形打印复制链接

主题:DataTable和Table区别的通俗说法

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47476 积分:251245 威望:0 精华:91 注册:2008/6/17 17:14:00
DataTable和Table区别的通俗说法  发帖心情 Post By:2009/5/25 18:30:00 [只看该作者]

DataTable包括所有的数据,就像一个仓库,而Table就像一个展厅,从仓库中提取符合条件的数据,按指定的顺序展示给客户。
所以Table有Filter(筛选)和Sort(排序)属性,用于决定展厅会展示那些数据,按什么样的顺序展示。
DataTable则不会有这些属性,它始终包括所有数据,且按照输入顺序排列。
展厅是对外开放的,是看得见的,所以我们平时看到的和操作的,都是是Table中的数据。
仓库是不对外开放的,是不可见的,我们只有通过代码才可能操作DataTable。


为什么要区分DataTable和Table呢?
我们的代码有时是针对所有数据的,有时则是针对看得见的数据,所以区分一下当然比较好。
但是这不是最重要的理由,最重要的理由是一个DataTable可能有多个Table,例如在产品表和订单表建立关联的时候,那么订单表就会有两个Table,分别是Tables("订单")和Tables("产品.订单"),也就是有了两个展厅,前者展示所有订单(如果你没有筛选的话),后者展示选定产品的订单;而仓库还是只有一个:DataTables(订单)。
这样我们就可以针对不同的"展厅"进行设置或操作,例如希望只能在"产品.订单"这个关联表中编辑数据,而不能在主表中编辑数据,只需:


Tables("订单").AllowEdit = False
Tables(产品.订单).AllowEdit = True


如果没有Table的概念存在,上述要求是不可能实现的。
随着学习的深入,你会看到,这种双层结构,给编程带来了极大的灵活性。


那么实际编程的时候,什么时候用DataTable,什么是用Table呢?其实很简单:如果你要对看得见的行进行操作,你就用Table,如果你要对所有行进行操作,你就用DataTable。

[此贴子已经被作者于2009-5-25 18:40:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
太空地球
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:29 积分:310 威望:0 精华:0 注册:2009/5/12 21:51:00
  发帖心情 Post By:2009/5/25 18:36:00 [只看该作者]

明白,帮助中好像有的啊??


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47476 积分:251245 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/25 18:40:00 [只看该作者]

以下是引用太空地球在2009-5-25 18:36:00的发言:

明白,帮助中好像有的啊??


呵呵,很多人不明白的。

我也奇怪,其实这个东东是很好理解的。

 


 回到顶部
帅哥哟,离线,有人找我吗?
don
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/25 18:48:00 [只看该作者]

以下是引用狐狸爸爸在2009-5-25 18:40:00的发言:


呵呵,很多人不明白的。

我也奇怪,其实这个东东是很好理解的。

 

呵呵,大概还是耐性不够,舍不得兔子套不了狐狸啊!

[此贴子已经被作者于2009-5-25 18:50:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/25 19:04:00 [只看该作者]

今天又加深一点点的理解~   但在用的时候,还是会有点犯晕~   呵呵。。。。。
好理解不一定就会用好的, 只能多练习了~

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/5/25 19:57:00 [只看该作者]

以下是引用mr725在2009-5-25 19:04:00的发言:
今天又加深一点点的理解~   但在用的时候,还是会有点犯晕~   呵呵。。。。。
好理解不一定就会用好的, 只能多练习了~

同意楼上,知道和理解是两回事啊。。


 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/5/28 13:37:00 [只看该作者]

问一下老爹,如果某表为外部数据表,其中设置了外部数据表过滤条件,此表的DataTable仓库还包含过滤掉的数据行吗?

比如:表A有"类型"列,类型有ABCDEF六种,过滤掉C类型,DataTable(表A)这个仓库里是否不包含类型为C的数据行?

 回到顶部
美女呀,离线,留言给我吧!
yangming
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/28 13:50:00 [只看该作者]

我的理解,不一定对啊,呵呵,要看你的过滤条件是怎么设置的,如果你设置的是加载条件,那仓库还有,如果你的仓库中就过滤了,那当然就没有了
[此贴子已经被作者于2009-5-28 13:51:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/5/28 14:04:00 [只看该作者]

如下图那样设置,该是如何?

图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
yangming
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/28 20:51:00 [只看该作者]

这个就是加载数据的条件及排序方式;通常只需选择数据源和数据表即可。并不会影响到“仓库”中的数据
[此贴子已经被作者于2009-5-28 20:51:36编辑过]

 回到顶部
总数 17 1 2 下一页