100分求救!asp表单数据提交,出现“参数类型不正确,或不在可以接受的范围之内”错误。

wenhugood 2010-04-24 11:58:09
我想在suifang.asp一个页面中实现表单数据提交,写入数据库。一直没调试成功。
错误提示:
ADODB.Recordset 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/suifang.asp,行 13



suifang.asp里面include了一个数据库连接文件dsn_root.asp.

dsn_root.asp代码如下

<%
mycnstr="Driver={Microsoft Access Driver (*.mdb)};DBQ="+Server.MapPath("userdb2003a.mdb")
Session.Timeout=30
%>


suifang.asp代码如下:
<%@ Language=VBScript%>
<%
Response.Buffer=true
Response.Expires=0

%>
<!-- #include file="dsn_root.asp" -->
<%
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)
set rs = Server.CreateObject("ADODB.Recordset")

rs.open "select * from patient_info",conn,1,3

rs.AddNew

rs("patient_name")=request.form("patient_name")
rs("patient_add")=request.form("patient_add")
rs("sex")=request.form("sex")
rs("patient_tel")=request.form("patient_tel")
rs("bingli_id")=request.form("bingli_id")
rs("operation_date")=request.form("operation_date")
rs("valve_type")=request.form("valve_type")
rs("valve_id")=request.form("valve_id")
rs("where_implated")=request.form("where_implated")
rs("where_implated")=request.form("where_implated")
rs("hospital")=request.form("hospital")
rs("hospital_add")=request.form("hospital_add")
rs("hospital_zip")=request.form("hospital_zip")
rs("doctor_name")=request.form("doctor_name")
rs("doctor_tel")=request.form("doctor_tel")
rs.Update
rs.close
set rs=nothing
response.Write"<script>alert('信息添加成功');history.back();</script>"'history.back();表示刷新
response.end
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>REGISTAION FORM</title>
<style type="text/css">
BODY {
FONT-SIZE: 9pt; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px;
}

TD {
FONT-SIZE: 9pt; LINE-HEIGHT: 11pt;
}
input {
FONT-SIZE: 9pt; height: 15pt;
}
.STYLE1 {font-weight: bold}
</style>
</head>

<body>

<form id="form1" name="form1" method="post" action="suifang.asp">
<p> </p>
<p> </p>
<p> </p>
<table width="930" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#28517e" bgcolor="#FFFFFF">
<tr>
<td colspan="5"><div align="center" class="STYLE1">登 记 表</div></td>
</tr>
<tr>
<td colspan="3"><p>北京公司<br />
</p> </td>
<td colspan="2"><div align="right">Tel:010-888888888 Fax:010-88888888</div></td>
</tr>
<tr>
<td width="116"><div align="center">患者姓名</div></td>
<td colspan="2"><input name="patient_name" type="text" id="patient_name" value="<%=patient_name%>" size="10" /></td>
<td width="90"><div align="center">性别 </div></td>
<td width="305"><label>
<input type="radio" name="sex" value="radiobutton" />
</label>

<label>
<input type="radio" name="sex" value="radiobutton" />
</label>
女</td>
</tr>

<tr>
<td><div align="center">家庭住址</div></td>
<td colspan="2"><label>
<input name="patient_add" type="text" id="patient_add" value="<%=patient_add%>" size="50" />
</label></td>
<td><div align="center">电话</div></td>
<td><label>
<input name="patient_tel" type="text" id="patient_tel" value="<%=patient_tel%>" size="11" />
</label></td>
</tr>

<tr>
<td><div align="center">病历号</div></td>
<td colspan="2"><label>
<input name="bingli_id" type="text" id="bingli_id" value="<%=bingli_id%>" />
</label></td>
<td><div align="center">手术日期</div></td>
<td><SELECT name=c_year id="c_year" onchange=changeDate()>
</SELECT>年<SELECT name=c_month id="c_month" onchange=changeDate()>
</SELECT>月<SELECT name=c_day id="c_day">
</SELECT>日</td>
<SCRIPT>
now = new Date();
function writeYears(obj, date)
{
var years = date.getYear()+100
for (var i=1997; i<2051; i++)
{
var opt = document.createElement("option")
opt.text = opt.value = i
obj.add(opt)
}
}
function writeMonths(obj)
{
for (var i=1; i<13; i++)
{
var opt = document.createElement("option")
opt.text = opt.value = Math.floor(i/10) ? i : "0"+i
obj.add(opt)
}
}
function writeDate(obj, year, month)
{
var date = new Date(""+year+"/"+(parseInt(month)+1)+"/"+0).getDate()
var selectedIndex = (date-1)<obj.selectedIndex ? (date-1) : obj.selectedIndex
var len = obj.options.length
if (date>len)
for (var i=len+1; i<=date; i++)
{
var opt = document.createElement("option")
opt.text = opt.value = Math.floor(i/10) ? i : "0"+i
obj.add(opt)
}
else
for (var i=date; i<len; i++)
{
obj.remove(obj.length-1)
}
obj.selectedIndex = selectedIndex
}
function changeDate()
{
var c_year = eval("document.forms[0].c_year")
var c_month = eval("document.forms[0].c_month")
var c_day = eval("document.forms[0].c_day")
writeDate(c_day, c_year.options(c_year.selectedIndex).value, c_month.options(c_month.selectedIndex).value)
}
</SCRIPT>

<SCRIPT language=javascript type=text/javascript>
writeYears(document.forms[0].c_year, now)
document.forms[0].c_year.value = now.getYear()
writeMonths(document.forms[0].c_month)
this_month = now.getMonth()+1
if (this_month<10){this_month = "0"+this_month}
document.forms[0].c_month.value = this_month
writeDate(document.forms[0].c_day, now.getYear(), now.getMonth()+1)
nowday = now.getDate()
if (nowday<10){nowday="0"+(now.getDate())*1}
document.forms[0].c_day.value = nowday
</SCRIPT>
</tr>

<tr>
<td><div align="center">瓣膜型号和编号<br />
</div></td>
<td width="176"><label>型号

<input type="radio" name="valve_type" value="radiobutton" />
GK-3

<input type="radio" name="valve_type" value="radiobutton" />
GK-S</label></td>
<td width="211"> <div align="center">编号
<input name="valve_id" type="text" id="valve_id" value="<%=valve_id%>" size="8" maxlength="9" />
</div>
<label></label></td>
<td colspan="2"><label></label></td>
</tr>

<tr>
<td><div align="center">植入部位</div></td>
<td colspan="4"><label>
<input type="radio" name="where_implated" value="radiobutton" />
</label>
Aortic
<input type="radio" name="where_implated" value="radiobutton" />
Mitral
<input type="radio" name="where_implated" value="radiobutton" />
Tricuspid
<input type="radio" name="where_implated" value="radiobutton" />
Multiple Valve</td>
</tr>

<tr>
<td><div align="center">手术医院</div></td>
<td colspan="4"><label>
<input name="hospital" type="text" id="hospital" value="<%=hospital%>" size="30" />
</label></td>
</tr>

<tr>
<td><div align="center">医院地址</div></td>
<td colspan="2"><label>
<input name="hospital_add" type="text" id="hospital_add" value="<%=hospital_add%>" size="50" />
</label></td>
<td><div align="center">邮编</div></td>
<td><label>
<input name="hospital_zip" type="text" id="hospital_zip" value="<%=hospital_zip%>" size="8" maxlength="8" />
</label></td>
</tr>

<tr>
<td><div align="center">手术医生</div></td>
<td colspan="2"><label>
<input name="doctor_name" type="text" id="doctor_name" value="<%=doctor_name%>" size="10" />
</label></td>
<td><div align="center">电话</div></td>
<td><label>
<input name="doctor_tel" type="text" id="doctor_tel" value="<%=doctor_tel%>" size="11" />
</label></td>
</tr>

<tr>
<td colspan="5">请仔细填写。</td>
</tr>
<tr>
<td colspan="5"><label>
<div align="center">
<input type="reset" name="Submit2" value="重新填写" />
<input type="submit" name="Submit" value="提交" />
</div>
</label></td>
</tr>
</table>

<p> </p>
<p> </p>
</form>
</body>
</html>
...全文
105 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyaohom 2010-04-24
  • 打赏
  • 举报
回复
mycnstr="Driver={Microsoft Access Driver (*.mdb)};DBQ="+Server.MapPath("userdb2003a.mdb")
这是老版的驱动,换一种连接方法? "provider=microsoft.jet.oledb.4.0;data source="&dbpath
wqjywyg2009 2010-04-24
  • 打赏
  • 举报
回复
set rs = Server.CreateObject("ADODB.Recordset")

rs.open "select * from patient_info",conn,1,3

这句改成:set rs = Server.CreateObject("ADODB.Recordset")

sql="select * from patient_info"
rs.open sql,conn,1,3
wenhugood 2010-04-24
  • 打赏
  • 举报
回复
我研究过了,但是还是找不出问题所在,希望具体问题高人能够具体分析一下,我已经调试了一天一夜了[Quote=引用楼主 wenhugood 的回复:]
我想在suifang.asp一个页面中实现表单数据提交,写入数据库。一直没调试成功。
错误提示:
ADODB.Recordset 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/suifang.asp,行 13



suifang.asp里面include了一个数据库连接文件dsn_root.asp.

dsn_roo……
[/Quote]
真哥哥 2010-04-24
  • 打赏
  • 举报
回复
应该能帮忙:
http://www.zytx.com.cn/news/computer/program/2008/926/0892684751KED8CI4J4E72H2KDD579.html
wenhugood 2010-04-24
  • 打赏
  • 举报
回复
我分成两个文件了,成功。谢谢。
wenhugood 2010-04-24
  • 打赏
  • 举报
回复
现在的程序是:

<!-- #include file="dsn_root.asp" -->
<%
if request("act")="add" then
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)
set rs = Server.CreateObject("ADODB.Recordset")
sql="select * from patient_info"
rs.open sql,cn,1,3
rs.AddNew

rs("patient_name")=request.form("patient_name")
rs("patient_add")=request.form("patient_add")
rs("sex")=request.form("sex")
rs("patient_tel")=request.form("patient_tel")
rs("bingli_id")=request.form("bingli_id")
rs("operation_date")=request.form("operation_date")
rs("valve_type")=request.form("valve_type")
rs("valve_id")=request.form("valve_id")
rs("where_implated")=request.form("where_implated")
rs("hospital")=request.form("hospital")
rs("hospital_add")=request.form("hospital_add")
rs("hospital_zip")=request.form("hospital_zip")
rs("doctor_name")=request.form("doctor_name")
rs("doctor_tel")=request.form("doctor_tel")

rs.Update
rs.close
end if
set rs=nothing
response.Write"<script>alert('信息添加成功');history.back();</script>"'history.back();表示刷新
response.end
%>


直接就给我弹出来 信息添加成功,表单不见了。怎么回事? 我一会再给你追加50分。好人做到底
wenhugood 2010-04-24
  • 打赏
  • 举报
回复
web0101:
非常感谢你的回答,这个问题解决了。 但是出现的页面直接是弹出窗口,alert('信息添加成功')。表单压根不显示。怎么办?
xiaobaigou2008 2010-04-24
  • 打赏
  • 举报
回复
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)
set rs = Server.CreateObject("ADODB.Recordset")

rs.open "select * from patient_info",conn,1,3

建立的数据库连接和打开数据库时使用的连接不一致
web0101 2010-04-24
  • 打赏
  • 举报
回复
rs("where_implated")=request.form("where_implated")
rs("where_implated")=request.form("where_implated") 出现2次
lzmaiyy99 2010-04-24
  • 打赏
  • 举报
回复
看数据库字段的类型和你提交数据的类型是否一致?如果是INT类型你写入字符可能会出现这错误。
web0101 2010-04-24
  • 打赏
  • 举报
回复
赶紧给我分数,我正等着用
web0101 2010-04-24
  • 打赏
  • 举报
回复
set cn = Server.CreateObject("ADODB.Connection")

rs.open "select * from patient_info",conn,1,3


还有就是在set cn = Server.CreateObject("ADODB.Connection")前面加个if判断语句,不然页面一rs
打开就运行SQL语句.例如:
if request("act")="add" then
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)
set rs = Server.CreateObject("ADODB.Recordset")

rs.open "select * from patient_info",conn,1,3

rs.AddNew

rs("patient_name")=request.form("patient_name")
rs("patient_add")=request.form("patient_add")
........
end if
lonsing 2010-04-24
  • 打赏
  • 举报
回复
set cn = Server.CreateObject("ADODB.Connection")
cn.Open(mycnstr)


rs.open "select * from patient_info",conn,1,3
OnceMyselfMonkey 2010-04-24
  • 打赏
  • 举报
回复
set cn = Server.CreateObject("ADODB.Connection")

rs.open "select * from patient_info",conn,1,3



wenhugood 2010-04-24
  • 打赏
  • 举报
回复
改成“ sql="select * from patient_info"
rs.open sql,conn,1,3”
也一样,还是老毛病。

另:这个数据库连接文件在其他文件调用时都没毛病。
  • 打赏
  • 举报
回复
我想在suifang.asp一个页面中实现表单数据提交,写入数据库。一直没调试成功。
错误提示:
ADODB.Recordset 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/suifang.asp,行 13

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧