以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 帮看下这个代码错在哪? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1731) |
|||||||||
-- 作者:mr725 -- 发布时间:2009/2/4 19:22:00 -- 帮看下这个代码错在哪? DataTables("编辑").DeleteFor("[总号] <> DataTables("编辑").current("总号")") 先谢谢了! |
|||||||||
-- 作者:mr725 -- 发布时间:2009/2/4 19:51:00 -- 改进后: DataTables("编辑").DeleteFor("[总号] <> \'" & DataTables("编辑").current("总号") & "\'") 还是不对,说 current is not a menber of \'datatable\' ? 不懂啊,难道还要定义它? 我的意思是:删除与当前行的\'总号\'不相等的其他的行! |
|||||||||
-- 作者:mr725 -- 发布时间:2009/2/4 20:22:00 -- 自己搞定: dim zh as integer = Tables("编辑").Current("总号") DataTables("编辑").DeleteFor("[总号] <> \'" & zh & " \'") \'ok了 或:DataTables("编辑").DeleteFor("[总号] <> \'" & Tables("编辑").Current("总号") & " \'") \'也行 但不明白:代码中【& DataTables("编辑").current("总号") &】与【& Tables("编辑").Current("总号") &】在这里有什么区别??? 狐友们、版主老师们请解释一下好吗? |
|||||||||
-- 作者:程兴刚 -- 发布时间:2009/2/4 20:37:00 -- 下面的概念非常重要,务必要掌握。 DataTable和Table 假定在一个简化的订单管理系统中,包括产品、客户、订单三个表: FoxTable中有一个集合DataTables,通过该集合可以获得指定名称的表,例如: DataTables ("产品") \'产品表DataTables("客户") \'客户表 DataTables("订单") \'订单表 实际上你是看不到DataTable的,你看到的是Table,也就是说,上面的三个图,实际上就是三个Table。 Tables ("产品")Tables("客户") Tables("订单") 在初始的情况下,Table会从DataTable中提取所有数据呈现给用户,如果你设置了筛选条件,Table就会从DataTable提取符合条件的数据,然后呈现给用户。 所以关于DataTable和Table的关系,较为完整的描述是:
关联表和Table 假定在上面这个简化的订单管理系统中,我们建立如下两个关联:
因为关联的建立,DataTable和Table不再是一一对应的关系,例如我选择产品表的时候,就会出现三个Table,分别是: 三个Table的作用为: Tables("产品"):主表,用于显示所有产品 同样在选择客户表的时候,也会出现三个Table: Tables("客户") 而选择订单表,出现的三个Table为: Tables("订单") 由此我们可以看出,同一个DataTable可以有多个Table,例如下面三个Table: Tables("产品") 它们的数据全部来自于DataTables("产品")。 DataTable的数量是固定的,Table的数量随着关联的增加而增加,同一个DataTable可以有多个Table,每个Table都各取所需地从DataTable中提取数据呈现给用户。 |
|||||||||
-- 作者:mr725 -- 发布时间:2009/2/4 21:41:00 -- 谢谢程版主,我看过了这段的帮助,只是没转过湾来,内容太多了,越看越糊涂,特别是最后一句!。 谁能用自己的语言结合代码例子简单的表达一下? |
|||||||||
-- 作者:狐狸爸爸 -- 发布时间:2009/2/4 21:44:00 -- 假定有一个订单表,这个表有1000行,假定其中100个订单是订购产品PD01的,我们在该表筛选出PD01的订单,现在你在订单表看到的行数是100行。 我们在窗口执行下面的代码: For Each r As Row in Tables("订单").Rowsr("折扣") = 0.2 Next 上面的代码,将你看到的100行(订购PD01的订单)的折扣设为0.2。 我们再来测试下面的代码: For Each dr As DataRow in DataTables("订单").DataRowsdr("折扣") = 0.2 Next 上面的代码所有1000行(全部订单)的折扣设为0.2 总之,如果你要对看得见的行进行操作,你就用Table,如果你要对所有行进行操作,你就用DataTable. |
|||||||||
-- 作者:mr725 -- 发布时间:2009/2/4 21:50:00 -- 以下是引用狐狸爸爸在2009-2-4 21:44:00的发言:
..........
总之,如果你要对看得见的行进行操作,你就用Table,如果你要对所有行进行操作,你就用DataTable. 这样说,好理解(虽没有完全领会)! 谢谢您了。 |