钨钢铣刀型号描述:asp 的小问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 03:38:06
recordset对象如何赋值给变量
我用class=rs("calss")这样的句子不能通过
郁闷了

sql查询中需要查询从另一个表中取得的记录,recordset不能用于直接查询。。所以想设置一个中间变量
我的代码。。其他部分是没有问题的
事先没有定义变量,如果定义变量使用dim class as string
这种句子。。他会告诉我缺少标识符

name=Session("name")

set rsa=server.CreateObject("adodb.recordset")
rsa.open "select * from std where usr_name='"&name&"'",conn,1,1

set class=rsa("class")

set rs=server.CreateObject("adodb.recordset")
rs.open "select * from std where usr_name='"&class&"' order by lastselecttime desc",conn,1,1

另外,我的机器上运行二楼代码
Microsoft VBScript 编译器错误 错误 '800a03ea'

语法错误

/testa.asp,行 6

class=rs("class")
^

class=rs("class")不能通过???
你的代码是怎么样的?
这样的写法是肯定能通过的。一定是你代码其他地方产生了错误。
一个简单的例子:
set rs=server.createobject("adodb.recordset")
rs.open "select top 1 * from tablename",conn,1,1
if not(rs.eof and rs.bof) then
class=rs("class")
else
class="错误值"
end if
rs.close
set rs=nothing

response.write class

'---条件:假设表tablename中有字段class
那么当你的数据库连接设置正确的情况下,是绝对可以在页面上显示一个执行结果的。

如果可以,把你的代码发上来看看。

--------------------------------
如果你加了option explicit,则你必须事先定义变量才能用。否则就可以不定义直接用。
另外,ASP里定义变量,不需要用dim xx as string这样的。直接
dim xx就行了

以下代码,你看一下,我稍做修改

name=Session("name") '这句正确

set rsa=server.CreateObject("adodb.recordset")
rsa.open "select * from std where usr_name='"&name&"'",conn,1,1 '这句也正确

'set class=rsa("class") 在这里,你不应该用class做变量,这是系统保留字,而且你这是赋值,并不需要用set的.
你改成:
class_str=rsa("class") '改成这句试试

set rs=server.CreateObject("adodb.recordset")
rs.open "select * from std where usr_name='"&class_str&"' order by lastselecttime desc",conn,1,1

这样修改,我就不信还不能通过?

对变量赋object类型的值时,使用动词 set
可以合并起来查询
rs.open "select product.*,class.className where product.classID=class.id",conn,1,1

或是
rs.open "select * from product",conn,1,1
rs_className = "select * from class where id=" & rs("classID")