asp奇怪的问题,高手来。

来源:百度知道 编辑:UC知道 时间:2024/05/31 10:15:11
在输出的时候:
<%=rs("content")%>
有值
再输出<%=rs("content")%>
无值
验证了一下:
<%=isNull(rs("content"))%>
<%=isNull(rs("content"))%>
<%=isNull(rs("content"))%>
得到的结果是
false
true
true
这是为什么呢?
中间没有任何的代码
没办法了,只有把这个值给个变量了,这样不会没!!

呵呵,楼上都没说到点上

我曾经写过一个数据库转换程序时,遇到了这个问题

你用的一定是Connection的execute

问题就出在这里

比如原来是:
set rs=conn.execute(sql)
改成
set rs=server.creatobject("adodb.recordset")
rs.open sql,conn,1,1

就没问题了

set rs=server.creatobject("adodb.recordset") 是新建了一个对象,在内存中分配了存储空间,不释放rs,值就不会丢.而set rs=conn.execute(strsql)则是随用随清的
''''''''''''''''''''''''''
set rs=conn.execute(strsql)后面紧挨着写了两个同样的语句,如:
response.write rs("content")
response.write rs("content")
结果第一个输出了从数据库取到的的数据,第二个就是空串了
''''''''''''''''''''''''''
所以在方法上尽量用recordset或者把数据库中取出的字段赋值给一个变量,然后对变量进行操作,这样也能提高效率

在这两个之间检查一下有没有记录集光标移动的代码和记录集其他操作的代码
=================================