日期:2014-05-17  浏览次数:20982 次

关于用asp修改数据库sql2000的问题
我在主业中用
response.write   " <td> <a   href=edit.asp?id= "&rs( "id ")& "> 修改 </a> </td> "
定义了修改的功能,id为每条记录的序号。
在edit.asp中我要修改当前的id号所对应的一系列数据
set   rs   =   server.createobject( "adodb.recordset ")
id=request.QueryString( "id ")
sql   =   "select   *   from   list   where   id= "   &id
rs.open   sql,conn,1,3
但是总在sql这条语句中报错,说 "= "后面的id无效
如果改成
sql   =   "select   *   from   list   where   id=5 "
则可以正确执行
请问如何在两个页面之间确定并调用所选中的id值??

------解决方案--------------------
set rs = server.createobject( "adodb.recordset ")
id=request.QueryString( "id ")

'先输出ID看看ID值是否正确
response.write id
response.end


sql = "select * from list where id= " &id
rs.open sql,conn,1,3

------解决方案--------------------
if id= " " or Not IsNumeric(id) then response.end
------解决方案--------------------
不用像楼上的说法那么麻烦,不过他们提的答案倒是调试程序的良好方法和方案。

一般遇到这种问题的时候,有两种可能:
1,没有取到ID的值;
2,ID为字符型数据,所以在数据库中数字型数据和字符型数据无法匹配。

在确认取到ID值之后,可以按如下方法方便的解决问题:
id=cint(request( "id "))

这样,无论id是什么类型的,都能保证类型有效。
------解决方案--------------------
response.write " <td> <a href=edit.asp?id= "&rs( "id ")& "> 修改 </a> </td> "
改为
response.write " <td> <a href=edit.asp?id= " <%=rs( "id ")%> "> 修改 </a> </td> "