秦菲 发表于 2013-1-6 16:19:27

请问,如何通过代码获取DataTable中Action1中第N列的值

今天研究了哈利用DataTable参数化的情况,遇到了一个问题
具体问题如下:
我的DataTable中的Action1(Local Sheet)中有3行数据
比如
第一行第二行 第三行
111   aaa       xxx
222   bbb      yyy
333   cccc

请问我如何获取到第二行的行数?并取得其中的值了?

黑羽祭 发表于 2013-1-6 16:24:24

又是个DataTable的问题
有谁常用DataTable的来解答下吧。
取值不难,但是要和QTP的设置结合起来用,如果只Run一行,那要取第二行的值就麻烦了。我没深入研究过DataTable。

秦菲 发表于 2013-1-6 16:40:12

谢谢版主关注

因为用到这个的几率还是比较高的,所以还希望哪位高手能帮哈忙,谢谢哈

泰然 发表于 2013-1-6 16:47:54

首先,你有这样的要求,基本上应该是脚本设计不合理。建议你再考虑一下实现的方法。
如果一定要这么做,你看一看DataTable对象的SetCurrentRow(x)、SetNextRow和SetPrevRow方法。

泰然 发表于 2013-1-6 16:49:54

其实这些问题,只要多用F1,都能找到答案的,多专研更提高。

秦菲 发表于 2013-1-6 17:16:27

回复 4# 泰然


    怎么会不合理了,不是很明白
比如说你想给三个不同的输入框填写N多个数据,需要怎么做了?

泰然 发表于 2013-1-7 09:40:37

哦。你是想每个输入框都要做参数化?

2个办法,1是对参数做笛卡尔乘积,比如A输入框有参数1和2,B输入框有参数“A0”和“B0”,那么你做参数化应该是:
A         B
1         A0
1         B0
2         A0
2         B0
2是分action做,层级式。

黑羽祭 发表于 2013-1-7 11:05:49

回复 6# 秦菲


    嗯,如果参数化,你的写法是有点问题。
如果你使用DataTable,那就把数据以行看,如果A B C三个输入框做参数化,就要写
A      B       C
1      1      1
1      1      2
1      2      1
1      2      2
2      1      1
2      1      2
1      2      1
1      2      2
如果你想下面这样数着吧所有的可能选择列举出来,让脚本自己组合测试。
A      B      C
1      1      1
2      2      3
3
那就试试Eom和读取外部Excel的方法来完成吧。

秦菲 发表于 2013-1-7 16:29:32

都是哦,可以用外部的Excel来做参数化的哇,呵呵,谢谢大家,受教了,那我去研究一下QTP和Excel的连用,研究好了,再来给大家分享经验哈

154957012 发表于 2013-1-7 17:40:18

按节点取值,可以考虑自己构建 XML

xiaoyu1981 发表于 2013-1-10 17:27:30

DataTable.SetCurrentRow(2)
MsgBox DataTable.GetSheet("Action1").GetParameter("列名").Value

cellule 发表于 2013-1-11 13:16:50

http://bbs.51testing.com/thread-766324-1-1.html

可以看看 这帖子

跑跑跑跑 发表于 2013-1-14 12:19:19

DataTable.GetSheet("Action1").GetParameter("列名").ValueByRow

yulu913 发表于 2013-1-15 12:36:14

还是引用外部的exel好用

枫殇 发表于 2013-4-16 20:23:43

tValue2=DataTable.GetSheet("Action1").GetParameter("XX").ValueByRow(2)
页: [1]
查看完整版本: 请问,如何通过代码获取DataTable中Action1中第N列的值