这两个ASP代码错误如何解决

来源:百度知道 编辑:UC知道 时间:2024/07/05 08:58:42
到底如何解决?

当搜索类型为“学号”时,出现下面错误:
错误类型:
ADODB.Recordset (0x800A0BB9)
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
/s/search.asp, 第 14 行

当搜索类型为“姓名”时,出现下面错误:
错误类型:
ADODB.Recordset (0x800A0E7D)
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。
/s/search.asp, 第 18 行

代码如下:
<%
keyWord = trim(request.QueryString("keyWord"))
SearchType = trim(request.QueryString("SearchType"))

if keyWord="" then
Response.Write "<script>alert('搜索关键字不能为空');window.close();</script>"
Response.End
end if

select case SearchType
case "学号"
keyword=Clng(keyword)
set rs=server.createobject("adodb.recordset")
'**************************以下是第14行*************************************
rs.open"SELECT * FROM student where num="&keyword,conn,1,1
'***********************************************************************

你数据库中的学号肯定不是数字类型的,否则不会出错,如果文本类型的话也应该换成='"&keyword&"',两边加上百分号更好,这样如果学号过长的话,你可以录少一点,然后在查询结果中再找,方便。
另外,当case为姓名时你的查询语句没有打开数据库呀,把conn,1,1给漏了。

1 学号不是数字字段,是文本字段吧?字段类型对不对呢?

2 keyword给你搞到学号那边了,姓名这边没有keyword了