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

新手ASP问题 请指教谢谢热心的朋友

月夜 发布于 2007-09-06 10:44, 1008 次点击
<!--#include file="conn.asp"-->
<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
Call openDB()
sql="delete from news where id="&id
conn.Execute(sql)
sql="delete from newshf where id="&id
conn.Execute(sql)
Response.Redirect "newsedit.asp"
Call closeDB()
enf if
%>
同时删除 2条不同表,但以关联ID的记录
就是说 新闻和新闻评论 我删除新闻的时候同时删除ID值一样的新闻评论

以上代码提示错误信息为:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
/admin/newsedit1.asp, 第 12 行


谢谢热心人
19 回复
#2
hmhz2007-09-06 10:47
<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
conn.Execute "delete from news where id="&id
conn.Execute "delete from newshf where id="&id
Response.Redirect "newsedit.asp"
enf if
%>
#3
月夜2007-09-06 10:49
非常感谢楼上的兄弟 只是您的做法和我的一样 我Copy您的代码上去 都是一样的 只是删除了新闻 并提示错误 新闻回复并没有被删除
#4
hmhz2007-09-06 10:51

你上下两个表ID字段里ID数据必须完全相同才能两个同时删除,如果你只删除了上面的,下面没有删除,那就证明下面的ID数据和上面的ID数据不同

#5
月夜2007-09-06 10:56
按道理讲 2个表内 都有ID这个字段 并且已经关联了 我删除同样ID的2个表 应该可以实现的啊
#6
月夜2007-09-06 11:09

还是谢谢帮助人的朋友

请问还有人可以帮忙吗 已经关联ID的2个表 同样的ID的值(ID内的值一样的)
同时删除2个表的ID的值 怎么才能做到

#7
hmhz2007-09-06 11:13
不一定,ID是唯一的,只有从建立两个表开始,同时添加才能同时删除,这样才不会错

建议你不要使用ID删除,因为两个表的ID不一定会完全相同的,你可以建立个相同的字段来保存他们的共同性内容专门调用删除,这样就不会错了,即使ID不同也可以同时删除
#8
月夜2007-09-06 11:18
hmhz 我的ID一定是相同的 因为我新闻回复的ID是读取新闻的 然后存入数据库 因为只有这样 调用新闻回复实现与新闻的同步
#9
月夜2007-09-06 11:19

是这样的新闻的主键是ID 而新闻回复的主键是UID 但新闻回复内有ID这个字段 并且ID与新闻ID同步

#10
yms1232007-09-06 11:20
<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
conn.Execute "delete from news,newshf where news.id="&id&" and newshf.id="&id
Response.Redirect "newsedit.asp"
enf if
%>
再删除不了,只能证明request.Form("id1")这里接收到的值有问题。
#11
hmhz2007-09-06 11:21
那你就要改成

<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
conn.Execute "delete from news where id="&id
conn.Execute "delete from newshf where UID="&id
Response.Redirect "newsedit.asp"
enf if
%>
#12
月夜2007-09-06 11:33
谢谢斑竹 我试一下
#13
月夜2007-09-06 11:39
id=request.Form("id1")
没有问题 因为如果单个删除新闻的话就好用 加上删除新闻回复就会提示错误 并且我查看了数据库 新闻内的ID的值与新闻回复的ID的数值是一样的 是同步的 没有错 我真的是实在不理解错在哪 我尝试了单个删除回复 也不好用 我不知道为什么 conn.Execute "delete from newshf where id="&id 这本是个没有错误的语句 数据库名字 字段完全正确 提示错误让我有点摸不着头脑
#14
hmhz2007-09-06 11:41

提示什么错误

#15
月夜2007-09-06 11:49
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
/admin/newsedit1.asp, 第 10 行
#16
hmhz2007-09-06 12:42
<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
conn.Execute "delete from news where id="&id
conn.Execute "delete from newshf where UID='"&id&"'"
Response.Redirect "newsedit.asp"
enf if
%>
#17
yms1232007-09-06 12:49
以下是引用hmhz在2007-9-6 12:42:24的发言:
<%
Dim id,del
id=request.Form("id1")
del=request.Form("aa")
If del="删除" Then
conn.Execute "delete from news where id="&id
conn.Execute "delete from newshf where UID='"&id&"'"
Response.Redirect "newsedit.asp"
enf if
%>

如果是数字类型的ID可以这样写。

#18
月夜2007-09-06 12:54
但是我新闻回复的表的UID和新闻表的ID值不一致 但是我回复的表内有ID这个字段 和新闻表的ID是一致的
#19
yms1232007-09-06 13:03
新闻表与新闻回复表应该是一对多的关系吧?
(一条新闻对应多条回复)
我10楼写的删除不了吗?
#20
月夜2007-09-06 13:10
斑竹大人我QQ108787999 加我一下 给您看点东西
1