注册 登录
编程论坛 ASP技术论坛

为什么不能进行赋值计算

dwsc103 发布于 2010-09-20 21:01, 539 次点击

<table style='border-collapse: collapse;table-layout:fixed;width:200pt'>
<%
name=Request.Form("v")

o(1,1)=name
FOR i=1 to 500
IF n(i,1)=name Then

只有本站会员才能查看附件,请 登录

o(2,1)=n(i,2):o(3,1)=n(i,3)
end IF:Next
%>

其中,红色部分的name直接用11代替,可以输出正确数据,而用name,就出现错误!

6 回复
#2
yms1232010-09-20 21:16
程序代码:
<%
Dim Conn,Driver,DBPath,Rs,m(500,13),n(500,4),o(500,4)
Set Conn=Server.CreateObject("ADODB.Connection")
Driver
="Driver={Microsoft Excel Driver (*.xls)};"
DBPath
="DBQ=" & Server.MapPath( "资料.xls" )
Conn.Open Driver
& DBPath
Sql
="Select * From [Sheet1$] where 个体>0"
Set Rs=Conn.Execute(Sql)
Do While Not Rs.EOF
     i
=i+1
     n(i,
1)=Rs("个体")
     n(i,
2)=Rs("父本")
     n(i,
3)=Rs("母本")
     Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
Conn.Close
Set Conn=Nothing
%>
<form method=post>
<table><tr><td>个体编号:<td><input type=text name ="v" size =12>
<input type=submit value ="确定">
</td><tr></table></form>
<table style='border-collapse: collapse;table-layout:fixed;width:200pt'>
<%
name
=Request.Form("v")
IF Name<>"" Then
     o(
1,1)=name
     
FOR i=1 to 500
         
IF n(i,1)=name Then
          o(
2,1)=n(i,2)
          o(
3,1)=n(i,3)
         
end IF
     
Next
End IF
%>
<tr><td colspan=2></td>
<td class=5>耳号 <%Response.Write o(2,1)%></td></tr>
<td class=5>耳号 <%Response.Write o(1,1)%></td></tr>
<tr><td colspan=2></td>
<td class=7>耳号 <%Response.Write o(3,1)%></td></tr>
</table>
#3
dwsc1032010-09-21 07:37
yms123,你好
按照你的程序,我验证了
FOR i=1 to 500
         IF n(i,1)=name Then
          o(2,1)=n(i,2)
          o(3,1)=n(i,3)
         end IF
 Next
还是不能在If...next循环体中调用name的数值,对 o(2,1)和o(3,1)赋值!
如果在ASP程序中对话框输入11,即给name赋值11,但是不能在If...next循环体体现。

IF n(i,1)=11 Then
          o(2,1)=n(i,2)
          o(3,1)=n(i,3)
end IF
就能输出正确结果!


[ 本帖最后由 dwsc103 于 2010-9-21 07:45 编辑 ]
#4
hams2010-09-21 08:41
赋值前加一句
name=CDbl(name)
#5
dwsc1032010-09-21 08:53
回复 4楼 hams
谢谢,可以了!请问这句代码的意义是什么,我不太明白!也谢谢2楼弟兄
#6
yms1232010-09-21 14:10
以下是引用dwsc103在2010-9-21 08:53:28的发言:

谢谢,可以了!请问这句代码的意义是什么,我不太明白!也谢谢2楼弟兄
你的数据类型不一致所以不能比较
#7
hams2010-09-21 15:05
以下是引用hams在2010-9-21 08:41:50的发言:

赋值前加一句
name=CDbl(name)
将name的数据类型转为数字
1