浙江省违章查询:有关ASP的一个问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 04:46:28
请大家先看下下面的语句:
Dim SQL,Rs
SQL = "SELECT * FROM pet WHERE host='"&Cname&"'"
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL,Conn
If Rs.EOF then
conn.execute("insert into pet(host,mark,link,pet)VALUES('"&Cname&"','"&mark&"','"&link&"','pet')")
else
......
end If
其中:
conn.execute("insert into pet(host,mark,link,pet)VALUES
这条语句为什么放在If Rs.EOF then后面就不能执行?而放在ELSE后面就行?我设计的这个程序必需两个后面都要执行的,那么可以怎么改呢?~
怪我没说清楚!是这样子的~~
我故意把那条记录清空,那样子的话它应该就要执行ELSE之前的语句啊!但是它没有执行!说是通讯错误!
反而,我加入一条记录后,ELSE后面的那条是正常执行的.
因为两条CONN.EXECUTE虽然是同一功能,但是要插入的数据有些异同.所以才要这样做!

Dim SQL,Rs
SQL = \"SELECT * FROM pet WHERE host=\'\"&Cname&\"\'\"
Set Rs = Server.CreateObject(\"ADODB.RecordSet\")
Rs.Open SQL,Conn
If Rs.EOF then
Cname=Cname \'等号后输入你想要的内容
link=link \'等号后输入你想要的内容
pet=pet \'等号后输入你想要的内容
else
Cname=Cname \'等号后输入你想要的内容
link=link \'等号后输入你想要的内容
pet=pet \'等号后输入你想要的内容

......
end If
conn.execute(\"insert into pet(host,mark,link,pet)VALUES(\'\"&Cname&\"\',\'\"&mark&\"\',\'\"&link&\"\',\'pet\')\")

If Rs.EOF then表示满足条件 host='"&Cname&"'"的记录数为0时才执行,所以conn.execute("insert into pet(host,mark,link,pet)VALUES 放在它后面不会执行,如果两种情况都要执行,就不用放在if语句中了:
Dim SQL,Rs
SQL = "SELECT * FROM pet WHERE host='"&Cname&"'"
Set Rs = Server.CreateObject("ADODB.RecordSet")
Rs.Open SQL,Conn
If Rs.EOF then

else
......
end If
conn.execute("insert into pet(host,mark,link,pet)VALUES('"&Cname&"','"&mark&"','"&link&"','pet')")

知道 if then else 的意思吗?
如果记录集为空的话(rs.eof)就执行then后面的语句,否则(记录集不为空not rs.eof)的话就执行else后面的语句,不可能同时执行。