情义两心坚 伴奏:复杂的而又头痛的asp问题,唉,各位帮忙吧.

来源:百度文库 编辑:中科新闻网 时间:2024/05/07 01:38:59
请看下面的网页代码:<html>

<head>
<title>注册处理页面</title>
</head>

<body>
<%
Dim ConnStr,myConn,mySQL
dim myID,myName,myPass,myBirth,myDip,myTel,myCell,myIDCard
dim myPro,myCity,myGender,myQues,myAns,myHomePage,myAdd,myPost
Set myConn=Server.CreateObject ("ADODB.Connection")
ConnStr="Provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("MasterASP.mdb")
Myconn.ConnectionString=ConnStr
myConn.open '直接打开数据库连接

myID=request.form("login") '用户名
myName=request.form("realname") '真实姓名
myPass=request.form("passwd") '密码
myBirth=request.form("birth") '生日
myDip=request.form("diploma") '学历
myTel=request.form("telphone") '电话
myCell=request.form("cellphone") '手机
myIDCard=request.form("idCard") '身份证
myPro=request.form("state") '省份
myCity=request.form("city") '城市
myGender=request.form("gender") '性别
myQues=request.form("question") '提示问题
myAns=request.form("answer") '提示答案
myHomePage=request.form("homepage") '主页
myAdd=request.form("address") '地址
myPost=request.form("postcode") '邮政编码

'查询该ID是否存在
mySQL="select * from register where UserID='" & myID & "'"
set myRes=myConn.execute(mySQL)

if myRes.bof and myRes.eof then

'定义一个Insert的SQL语句,向maserasp.mdb的register数据库表插入一条记录
mySQL="insert into register (UserID,UserPWD,UserName,Birth,Diploma,TelPhone,CellPhone,"
mySQL=mySQL+"IDCard,Province,City,Gender,PassQuestion,PassAnswer,HomePage,Address,PostCode)"
mySQL=mySQL+" values ('" & myID & "','" & myPass & "','" & myName
mySQL=mySQL + "', '"& myBirth &"','" & myDip & "','" & myTel & "','" & myCell
mySQL=mySQL + "','" & myIDCard & "','" & myPro & "','" & myCity & "','" & myGender
mySQL=mySQL + "','" & myQues & "','" & myAns & "','" & myHomePage & "','" & myAdd
mySQL=mySQL + "','" & myPost & "')"

myConn.Execute mySQL

response.write "<br>你注册成功,请回到登录页面!"
%>
<a href="login.asp">单击这里链接到登录页面 </a>

<%
else

response.write "该帐号已经存在!"

%>
<!-- #include file="register.asp" -->
<%
end if

myConn.close
set myConn=nothing

%>
</body>

</html>当我运行时,它会出现错误提示为:错误类型:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。难道这里什么地方出错了,不能更新吧,请各位指教.

在ntfs格式下asp没有写权限
分区格式户成fat32就可以了

这么简单

看来看去,似乎找不到什么问题...
放个书签,我也学习学习..

帮我也分析一下
<%
sql="select * from orders where id="&request("id")
set rs=server.createobject("ADODB.Recordset")
rs.open sql,conn,1,1
if rs.eof or rs.bof then
rs.close
set rs=nothing
response.write"<SCRIPT language=JavaScript>alert('对不起,定单号不存在!');"
response.write"javascript:history.go(-1)</SCRIPT>"
response.end
end if
user_name=rs("user_name")
sqlt="select * from user where user_name='"&user_name&"'"
set rst=server.createobject("ADODB.Recordset")
rst.open sqlt,conn,1,1
%>

你的数据库中可能没有记录吧.

呵呵.

肯定是你某个字段的类型不对,查看表里的,字符型用单引号引用,数值型的直接引用,布尔型的在SQL里用0和1引用,ACCES里用true和false引用,日期型的在SQL里用单引号引用,ACCESS里用#号引用,还有,从request.form来的默认都是字符型的,这是些基本原则
再看你的程序,
mySQL="select * from register where UserID='" & myID & "'" 通常UserId是数字型的,不应该加引号,我不知道你数据库里是不是这样设定的.
还有数据库里的myBirth值照常理应为日期型,你使用了单引号,如果在SQL数据库中是允许的,而你myConn对象引用的是microsoft.jet.oledb.4.0明显是ACCESS数据库,这时候日期型应该拿#引用