df_85110400 发表于 2009-5-20 13:49:11

在qtp中从数据库导入到datatable中数据应用到参数化时为什么每次都是最后一条

在qtp中从数据库导入到datatable中数据应用到参数化时为什么每次都是最后一条
Dim Cnn
Dim Rst
Dim strCnn
Dim mylink
strCnn="Provider=OraOLEDB.Oracle.1;Data Source=ORCL10_10.10.0.12;Password=lanpayuser;User ID=lanpayuser;Persist Security Info=True;"'链接数据库方法
Set Cnn = CreateObject("ADODB.Connection")
Cnn.Open strCnn
Set Rst =CreateObject("ADODB.Recordset")
Rst.open "select user_email from user_info whereuser_id_number='652301198509275237'", Cnn
i=1
While not rst.eof
dim1=Rst("user_email").value
DataTable.GlobalSheet.SetCurrentRow(i)
DataTable("user_email","Global")=dim1
Rst.movenext   
i=i+1

wend   
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅").WebEdit("usn").Set DataTable("user_email", Global)
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅").WebEdit("pwd").SetSecure "4a1374dc1b4da15c07012c77310cc4660927"
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅").Link("点击").Click
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅_2").WebEdit("inputCode").Set "1314"
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅_2").WebCheckBox("secure").Set "OFF"
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅_2").WebButton("登陆").Click
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Page("LanPay瑞宝支付|安全 简单 快捷 顺畅_3").Sync
Browser("LanPay瑞宝支付|安全 简单 快捷 顺畅").Close

hk_ella 发表于 2009-5-20 14:24:00

while结束之后,DataTable页面的指针被你用DataTable.GlobalSheet.SetCurrentRow(i)语句指向了最后一行
所以你后面用DataTable("user_email", Global)语句获取参数时获取到的值当然是最后一行的值
如果你想获取指定行的值,则需在获取之前设用DataTable.GlobalSheet.SetCurrentRow(指定行)指定一下即可

df_85110400 发表于 2009-5-20 17:03:51

我指定了以后在使用时为什么取不到值??

xavier_007 发表于 2009-5-20 17:35:24

debug下阿

hk_ella 发表于 2009-5-26 17:22:35

把你的代码贴出来看看吧
另外调试时最好的方法就是楼上仁兄说的debug,你在变量那一栏看一下各个参数是否正确,这样很快就知道问题出在哪里了
页: [1]
查看完整版本: 在qtp中从数据库导入到datatable中数据应用到参数化时为什么每次都是最后一条