Foxtable(狐表)用户栏目专家坐堂 → 这里的table和datatable 俺又糊涂了!


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

主题:这里的table和datatable 俺又糊涂了!

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/14 18:09:00 [显示全部帖子]

哈哈 ,你的确一直是糊涂的。
假如:
总共10000条数据
加载了1000条数据
筛选出了100条数据
那么
DataTable有1000条数据
Table有100条数据。

你的列子没有筛选 所以DataTable和Table 都是一样了
[此贴子已经被作者于2009-7-14 18:09:10编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/14 18:24:00 [显示全部帖子]

命令窗口执行:
Dim c  As Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select count(*) From {test}"
c = cmd.ExecuteScalar()
output.show("总共 " & c & " 条记录")
output.show("加载了 " & datatables("test").datarows.count  & " 条记录")
Output.Show("筛选出了 " & tables("test").Rows.Count & " 条记录")


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/14 19:02:00 [显示全部帖子]

以下是引用mr725在2009-7-14 18:41:00的发言:

lxl老师: 
1、我的这个test表 一共9683条记录(行),在没有任何操作时 datatables("test") 和 tables("test") 都是一样的行数 9683行, 当点击节点后(如一楼),剩下15行,这是加载还是的结果?我没搞清楚~ ?
2、是DataTables("test").Load() 表示加载吧,并没有筛选的意思,所以一楼显示结果都一致!~
3、那么,datatabletable 都是动态的数字(行) , datatable可能少于原来的datatable的行数,我一直以为datatable的行数是不变的~

所以我这样来描述:不知对否?
总共10000条数据       这是一个表A的后台数据行数,或称 后台的  datatable  一个表的所有行数
加载了1000条数据      这是加载到表A的数据行数,或称 加载后的  datatable  可能条件不同会加载不同的行数
筛选出了100条数据     这是经过筛选后表A的数据行数,也称,前台即可见的 table
呵呵~  总之,我还是有些糊涂~~  图片点击可在新窗口打开查看

这下理解对了。

回答你第一个问题:
不做任何操作的话,默认加载所有行。LoadFliter = "True"
点一个节点后,显示15行,是重新加载。 LoadFliter = "指定条件"

严格一点说,加载后的才是DataTable.没加载的只是硬盘上的数据(不能称之谓后台DataTable)


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/7/14 19:06:00 [显示全部帖子]

以下是引用mr725在2009-7-14 18:49:00的发言:
还有个问题:  在我点击了节点后, 我想一次性删除 test表 的所有数据时 用DataTables("test").DataRows.Clear() 肯定不行了, 应该怎样做才可以删除test表中所有的数据行(就是要是test表成为一个空表)?

    DataTables("test").LoadFilter = "False"
    DataTables("test").Load()


其实打开项目的时候就应该加载一个空表。这样性能才是最好的。
你看看BeforeLoadInnerTable


 回到顶部