u盘快捷键联想z360:连接access数据库表单提交时错误,望高手指点,急,谢谢!

来源:百度文库 编辑:高校问答 时间:2024/05/03 07:38:28
update_form.asp 代码:

<% Option Explicit %>
<html>
<head>
<title>利用Update语句修改记录示例</title>
<style type="text/css">
<!--
.style1 {font-size: medium}
.STYLE2 {
font-family: "宋体";
color: #0000FF;
}
-->
</style>
</head>
<body>
<h2 align="center" class="STYLE2">内容修改</h2>
<%
Dim varid
varid=Request.QueryString("id") '获取要修改的记录的网站编号
Session("id")=varid '保存到Session中,以备upload.asp使用
'以下连接数据库,建立一个Connection对象实例db
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "Dbq="&Server.Mappath("productsDB.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"
'以下打开记录集
Dim strSql,rs
strSql="Select * From data Where id=" & varid
Set rs=db.Execute(strSql)
%>
<center>
<table border="1" bordercolor=red width="90%">
<form name="form1" method="post" action="update.asp" ><tr>
<td>名称</td><td>
<textarea name="content" rows="2" cols="40" wrap="soft"> <%=rs("data_name")%></textarea></td>
</tr>
<tr>
<td>品牌</td><td>
<textarea name="content" rows="2" cols="40" wrap="soft"> <%=rs("data_pinpai")%></textarea></td>

</tr>
<tr>
<td>说明</td><td>
<textarea name="content" rows="5" cols="40" wrap="soft"> <%=rs("data_only")%></textarea></td>

</tr>
<tr>
<td></td><td><input type="submit" value=" 确 定 ">
<label>
<input type="reset" name="Submit" value="重添">
</label></td>
</tr>
</form>
</table>
</center>
</body>
</html>

updata.asp代码
<% Option Explicit %>
<%
Dim varid
varid=Session("id") '从Session中获取要修改的编号
'如果上面的信息填全了,就修改记录,否则给出提示信息
If Request.Form("content")<>"" Then
'以下连接数据库,建立一个Connection对象实例db
Dim db
Set db=Server.CreateObject("ADODB.Connection")
db.Open "Dbq="&Server.Mappath("productsDB.mdb")&";Driver={Microsoft Access Driver (*.mdb)};"
'以下修改记录
Dim varData_name,varData_pinpai,varData_only,StrSql,varid
varData_name=Request.Form("data_name") 'update-form.asp中表单中的input属性中的name值
StrSql="Update data Set data_name='" & varData_name & "', data_pinpai='" & varData_pinpai & "', data_only='" & varData_only & "' Where id=" & varid

db.Execute(strSql)
Response.Redirect "index.asp"
Else
Response.Write "请将所有信息填写完整"
Response.Write "<a href='index.asp'>重新修改</a>"
End If
%>

错误提示:

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'id=' 中。
/ch/update_form.asp, 第 28 行

update_form.asp, 第 28 行 为 Set rs=db.Execute(strSql)

相关的access数据库表中记录均允许空字符串,没有必填字符.

不知道问题在何处,望高手帮忙解, 不胜感激!

显然是varid=Request.QueryString("id")没有取得值 ,
你试着在地址栏里键入,http://你的网站/update_form.asp?id=1
看看会不会错,
如果出错,就是update_form.asp的问题
如果没错,那就是上一个页面没有传值给update_form.asp

varid=Request.QueryString("id") '获取要修改的记录的网站编号

改这句,你有没有传递ID值?