帮忙看看是哪的问题.弄好久了,郁闷.

L5160729 2007-02-13 05:13:11
我的留言本是从表单用post方式提交留言数据的,想获取相应留言内容的id以便来删除它,我数据库里id这个字段用的是int,可以吗?不知我说的是不是清楚,可以到这里看看,解决即高分结帖.谢谢了.http://community.csdn.net/Expert/topic/5354/5354255.xml?temp=.3774378
...全文
548 64 打赏 收藏 转发到动态 举报
写回复
用AI写文章
64 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbtflash 2007-02-14
  • 打赏
  • 举报
回复
SQL = "select * from lyb where id='"&session("id")&"'"


如果ID字段是数字或自动编号,这样在ACCESS数据库里面会报错的
正确的应该是SQL = "select * from lyb where id="&session("id")&""

还有,转换数字的时候不要用Cint 这样的话,当ID的值太大时,会溢出的,最好用 Int 或Clng

L5160729 2007-02-14
  • 打赏
  • 举报
回复
哦.懂了.
hezhixing 2007-02-14
  • 打赏
  • 举报
回复
如果是int型可以这样用:="&cint(Request("id"))
hezhixing 2007-02-14
  • 打赏
  • 举报
回复
你中间是变量。。。就要加上 &这里是你传的变量&
L5160729 2007-02-14
  • 打赏
  • 举报
回复
谢谢楼上的回答.请问为什么要加"&"?
badwish 2007-02-14
  • 打赏
  • 举报
回复
SQL = "select * from lyb where id='"&session("id")"'"

改成:SQL = "select * from lyb where id="&cint(session("id"))'建议改这种
或:SQL = "select * from lyb where id='"&session("id")&"'"


文件名用中文确实不好,但数据库里的表及字段都可以用中文。
L5160729 2007-02-14
  • 打赏
  • 举报
回复
哦.谢谢.下次会注意的.
gszxt 2007-02-14
  • 打赏
  • 举报
回复
中文文件名,在你本机是可以浏览的
但如果放到网上,很多空间是不支持中文命名的,
所以建议中英文命名
L5160729 2007-02-14
  • 打赏
  • 举报
回复
行了.谢谢各位的帮忙.这就结帖.我会总结一下这次错误的原因,发帖散分的.到时请各位来接分哦.
hezhixing 2007-02-14
  • 打赏
  • 举报
回复
少个连接符 &
xie_yanke 2007-02-14
  • 打赏
  • 举报
回复
少&
L5160729 2007-02-14
  • 打赏
  • 举报
回复
还有一个问题是"编辑留言"页面的.
错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/TEST/编辑留言.asp, line 23, column 50
SQL = "select * from lyb where id='"&session("id")"'"
-------------------------------------------------^
这是编辑留言页面的代码:
<%response.Buffer=true%>
<!--#include file="conn1.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>留言本</title>
<style type="text/css">
<!--
.style1 {font-size: 12px}
.style2 {font-size: 12px; font-weight: bold; }
-->
</style>
</head>

<body>
<%
set rs = server.CreateObject("adodb.recordset")
if request.QueryString("id")<>"" then
session("id") = request.QueryString("id")
Call EditInfor()
else
set rs = server.CreateObject("adodb.recordset")
SQL = "select * from lyb where id='"&session("id")"'"
rs.open SQL,conn,3,3
rs("Title") = request.Form("title")
rs("Content") = request.Form("content")
rs("DateTime") = Now()
rs.update
Response.Redirect("显示留言.asp")
end if
Sub EditInfor()
%>
<%
rs.open "select * from lyb where id="&request.QueryString("id"),conn,3,3
if not rs.eof then
%>
<form name="form1" method="post" action="编辑留言.asp">
<p align="center" class="style2">留言本 - 编辑留言内容</p>
<table width="479" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="#FFFFFF">
<td width="86"><div align="center"><span class="style1">标题:</span></div></td>
<td width="304" height="30">
<input name="title" type="text" id="title" value="<%=rs("title")%>"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td><div align="center"><span class="style1">内容:</span></div></td>
<td><textarea name="content" cols="50" rows="20" id="content"><%=rs("Content")%></textarea></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="修改">
<input type="button" name="Submit" value="查看留言" onClick="location.href='显示留言.asp'">
<input type="reset" name="Submit" value="重置">
</div></td>
</tr>
</table>
</form>
<%
rs.close
end if
End Sub

%>

</body>
</html>
这是第23行:
SQL = "select * from lyb where id='"&session("id")"'"
L5160729 2007-02-14
  • 打赏
  • 举报
回复
没有错误提示,现在已经可以删除留言了.
badwish 2007-02-14
  • 打赏
  • 举报
回复
在删除页中:id = request.QueryString("id")
改成:id = cint(request("id"))
看有没有错语提示。
L5160729 2007-02-14
  • 打赏
  • 举报
回复
我又试了一次,断点调试有值了,就跟数据库里的一样.1,2之内的.但还是不可以删除留言.
L5160729 2007-02-14
  • 打赏
  • 举报
回复
badwish(魔心) ( ) 信誉:100 Blog 2007-2-14 9:36:29 得分: 0
基本上我可以确定你的ID字段是错误的
如果ID字段是正确的,每添加一个记录都会自动产生一个ID

新建一个空数据表(不要复制表),添加除ID以外所有字段(跟以前的表一样),重新添加ID字段,sql数据库ID应该是int类型,设为标识(选是),标识种子默认是1,标识递增量默认是1



再试试。

谢谢你的回答.照你的方法改了现在仍然不可以删除留言.我到数据里看了,ID字段有数值了,但我用断点调试看没有ID值传过来,请问还有哪里设置的不对吗?
fighter222 2007-02-14
  • 打赏
  • 举报
回复
关注,我也遇到类似的问题
badwish 2007-02-14
  • 打赏
  • 举报
回复
中文命名不是错误。。。。。。
L5160729 2007-02-14
  • 打赏
  • 举报
回复
楼上的请问为什么不能用中文命名呢?肯请赐教.
gszxt 2007-02-14
  • 打赏
  • 举报
回复
像楼上说的一样,把id字段设为主关键字段,int型,如果是sql server 数据库那要把id设为标识种子,如果是access数据,要设为自动编号,

还有一个问题就是你怎么以中文命名啊,
不能是中文命名的,
先把文件改为英文
再试一下
在接收id删除页你先用:
response.write request("id")
response.end
看看是不是有值传过来了
加载更多回复(44)

28,391

社区成员

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

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