注册 登录
编程论坛 ASP技术论坛

Microsoft JET Database Engine (0x80040E07)

fengmnll 发布于 2010-05-21 09:33, 1494 次点击
edit_student.asp
 <a href="modify_student.asp?student_id=<%=rs("student_id")%>">修改</a>
modify_student.asp
<%
dim sql,rs,student_id
student_id=request.QueryString("student_id")
sql="select * from student where student_id="&student_id&""
set rs=conn.execute(sql)
%>


Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。congedit_student.asp转到modify_student.asp的时候出现的错误,我设置的student_id是文本型的.谢谢,不知道什么地方出错了呢?

5 回复
#2
gupiao1752010-05-21 10:02
错误是出现在modify_student.asp这个页面的话,根据字面的几行代码,初步估计可能如下:
<%
dim sql,rs,student_id
student_id=request.QueryString("student_id")
sql="select * from student where student_id='"&student_id&"'"
set rs=conn.execute(sql)
%>
文本型需要加单引号,数字型才不需要!
#3
fengmnll2010-05-21 10:11
回复 2楼 gupiao175
恩,刚才那个问题解决了
<!--#include file="conn.asp"-->
<%
 Dim sql,student_id,student_name,age,in_time,sex,major
 student_id=request.Form("student_id")
 student_name=request.Form("student_name")
 age=request.Form("age")
 in_time=request.Form("in_time")
 sex=request.Form("sex")
 homeplace=request.Form("homeplace")
 major=request.Form("major")
 set rs=server.CreateObject("ADODB.Recordset")
sql="update [student] set  student_id='"&student_id&"',student_name='"&student_name&"', sex='"&sex&"' ,age='"&age&"',in_time='"&in_time&"', homeplace='"&homeplace&"' ,major='"&major&"' where student_id="&student_id&""
 conn.execute(sql)
response.write "<script language=javascript>alert(记录添加成功!');history.back(edit_student.asp)</script>"
 response.Redirect("edit_student.asp")
 response.End()  
%>
这个有该怎么修改呢?谢谢版主

#4
gupiao1752010-05-21 10:41

<!--#include file="conn.asp"-->
<%
Dim sql,student_id,student_name,age,in_time,sex,major
student_id=request.Form("student_id")
student_name=request.Form("student_name")
age=request.Form("age")
in_time=request.Form("in_time")
sex=request.Form("sex")
homeplace=request.Form("homeplace")
major=request.Form("major")
set rs=server.CreateObject("ADODB.Recordset")
sql="update [student] set  student_id='"&student_id&"',student_name='"&student_name&"', sex='"&sex&"' ,age='"&age&"',in_time='"&in_time&"', homeplace='"&homeplace&"' ,major='"&major&"' where student_id="&student_id&""
conn.execute(sql)
response.write "<script language=javascript>alert('记录添加成功!');history.back(edit_student.asp)</script>"
response.Redirect("edit_student.asp")
response.End()  
%>
你这个代码错误何在?如果只从字面上看:
response.write "<script language=javascript>alert('记录添加成功!');</script>"
response.Redirect("edit_student.asp")
缺少一个单引号,后history.back用法错误!不能那么用,其作用是后退,和history.go()作用类似,中间可以跟数字,表示前进后退!具体可以自己去测试!
既然用了后退,后面又跟重导response.Redirect("edit_student.asp"),这点我实在不解,这么做根本没有意义了!

上面的数据库操作你就遵循一个规则:文本型:student_name='"&student_name&"',数字型:age="&age&"
至于字段是什么类型,你自己打开数据库认真看看每个字段,最好把每个字段的类型都用笔记下来!并核对代码里的字段名和数据库里的字段名是否对应!
如次而已,方能把错误几率降到最低!


#5
fengmnll2010-05-21 10:43
回复 4楼 gupiao175
恩好的,谢谢,调试好了
#6
魏兴耀2010-05-21 10:52
又看到你的贴了,你这个帖利的问题很明显诶
sql="update [student] set  student_id='"&student_id&"',student_name='"&student_name&"', sex='"&sex&"' ,age='"&age&"',in_time='"&in_time&"', homeplace='"&homeplace&"' ,major='"&major&"' where student_id="&student_id&""
看到了吗?我用黑色标出来了,你的in_time是日期型的吗?改成:in_time=#"&in_time&"#,
1