请教关于变量的定义,赋值,传入问题,有源码
<%
'程序目的是从其中一个数据表中读出数据,去对应另一个表,并取得一些需要值
'执行中发现赋的值及变量不会更新,在循环写中一直在写第一次取出的值
'不知是不是因为变量定义位置的错误还是其它问题,尊请指导
db="gd3.mdb"
Tdb="class.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
Set Tconn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
Tconnstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&Tdb&"")
conn.Open connstr
Tconn.open Tconnstr
action=trim(request("action"))
select case action
case ""
display()
case "datato"
datato()
case else
display()
end select
sub datato()
Tsql="select * from guang"
set Trs=Tconn.execute(Tsql)
while not Trs.eof
DIM Qymc,jjhy1,xm
DIM Sortid,Typeid,threeid,fourid
Qymc=Trs("qymc")
jjhy1=Trs("jjhy")
if jjhy1="" then
jjhy1="空" '一般不会为空
else
jjhy1=jjhy1
end if
DMsql="select * from GB2002 where GB94='"&jjhy1&"'"
set DMrs=Tconn.execute(DMsql)
if not DMrs.eof then
xm=DMrs("bm") '这里出现个怪问题,jjhy1每次都变了,可这个xm就象没变
DMsql3="select * from Class_4 where bm='"&xm&"'"
set DMrs3=Tconn.execute(DMsql3)
Sortid=DMrs3("oneid")
Typeid=DMrs3("twoid")
threeid=DMrs3("threeid") '所以这些值全是第一次需得的
fourid=DMrs3("fourid")
set DMrs3=nothing
'怎么才能在下次读取这些值前清了这些变量值?
end if
sql="insert into Qyml(Qymc,GB94,Sf,City,county,block,edifice,Sortid,Typeid,threeid,fourid,GB2002)
values('"&Qymc&"','"&jjhy1&"','"&Sortid&"','"&Typeid&"','"&threeid&"','"&fourid&"','"&xm&"')"
Trs.movenext
wend
set rs=nothing
end sub
display()
response.write "<a href=go.asp?action=datato>取对应ID值</a>"
end sub%>
问题点数:100、回复次数:9Top
1 楼mymyal123(风之森)回复于 2005-07-10 23:21:38 得分 0
把问题说清楚点Top
2 楼dragon9(龙九)回复于 2005-07-10 23:33:14 得分 0
Sortid=DMrs3("oneid")
Typeid=DMrs3("twoid")
threeid=DMrs3("threeid")
fourid=DMrs3("fourid")
例:第一次分别取得 1,3,24,67 '此结果正确
第二次传入的变量变了,结果还是1,3,24,67 '此结果不正解,变量没更新
第三次传入变量再次改变了,1,3.24,67 '还是不更新,
我要怎么才能每次都更新,或是清空上次的值呢?Top
3 楼QCB181(asp.net)回复于 2005-07-10 23:48:55 得分 0
还是不清楚Top
4 楼dragon9(龙九)回复于 2005-07-10 23:49:18 得分 0
问题简单的说就是在循环中,下一次前清空变量!Top
5 楼wzhiyuan(我是谁)回复于 2005-07-11 00:03:20 得分 50
Q: xm=DMrs("bm") '这里出现个怪问题,jjhy1每次都变了,可这个xm就象没变
A:你确认吗? 你先每次输出这个jjhy1看看,是否每次都变,再输出xm看看,是否在jjhy1变的时候保持未变。如果确实是jjhy1变而xm未变的话,那你直接打开数据库表看看,到底是否数据就是这样。
ps:Sortid,Typeid等4个变量是随着xm变的,xm不变他们自然也不变,所以这里先不用考虑他们,xm的问题解决后他们也会正常的。Top
6 楼dragon9(龙九)回复于 2005-07-11 00:36:40 得分 0
现在的问题就是如何清空变量?Top
7 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-07-11 01:26:51 得分 50
程序目的是从其中一个数据表中读出数据,去对应另一个表,并取得一些需要值
'执行中发现赋的值及变量不会更新,在循环写中一直在写第一次取出的值
这样的思路是错误的,你可以尽量用一句SQL,比如inner(full/left/right outer) join 去实现表的连接,如果实在实现起来麻烦,你可以用存储过程,或者把数据灌到数组里面去做。
尽晚打开数据库,尽早关闭之,这是使用ADO的原则。Top
8 楼wanghui0380(放歌)回复于 2005-07-11 07:36:04 得分 0
奇怪呀,两个表既然有关联的键值,干吗不用一条sql语句做两表联查??
Top
9 楼zol229()回复于 2005-07-11 07:45:19 得分 0
我买了一个空间 100 MB asp 和 asp .net空间50元/年! 速度飞快!高兴给分!
同学们可以做一个简单的个人网站用来找工作
http: // www.hi876.com 你们也看看吧Top




