asp中检测到数据重复,如何让数据不写入,返回重新输入?
一个入库登记的页面,作了对单据编号是否一样的限制,都已经成功,但是如果单据编号输入一样的话,会提示单据编号重复然后,它一样录入数据库,如何阻止录入数据库?另外请好心人帮忙...
一个入库登记的页面,作了对单据编号是否一样的限制,都已经成功,但是如果单据编号输入一样的话,会提示单据编号重复然后,它一样录入数据库,如何阻止录入数据库?另外请好心人帮忙做一个可以查看数据库的简单文件,要求可以单条和批量删除数据。
下面是我自己的代码:
set rs=server.CreateObject("adodb.recordset")
dim sqlstr2,sqlstr1
sqlstr1="select * from rkdj0 where djbh='"+djbh+"'"
rs.open sqlstr1,conn,1,3
if rs.eof then
rs.close
sqlstr2 = "INSERT into rkdj0(djbh,rkrq,zdrbh,zdr,gysbh,gys,bz,hjsl,hjje) values ('"+djbh+"','"+rkrq+"','"+zdrbh+"','"+zdr+"','"+gysbh+"','"+gys+"','"+bz+"',"+hjsl+","+hjje+")"
rs.Open sqlstr2,conn,1,1
dz98="入库登记"
xgbh98="入库单号:"&djbh
%>
<!--#include file="dlrz.asp"-->
<%
set rs5=server.CreateObject("adodb.recordset")
rs5.Open "select * from djbh",conn,1,3
while not rs5.eof
set rs2=server.CreateObject("adodb.recordset")
rs2.open "update djbh set rkd1="&(rs5("rkd1")+1),conn,1,3
rs5.movenext
wend
response.write("<script>alert('单据保存成功');document.location='viewbgyp.asp'</script>")
else
response.write ("<script>alert('单据编号重复');window.history.go(-1);</script>")
response.end
end if
%>
上面的程序
dim bh(50),mc(50),gg(50),jldw(50),rksl(50),dj(50),je(50),bzz(50),sqlstr3(50)
for it=0 to tot-1 step 1
bhh="bh"+cstr(it)
mcc="mc"+cstr(it)
ggg="gg"+cstr(it)
jldww="jldw"+cstr(it)
rksll="rksl"+cstr(it)
djj="dj"+cstr(it)
jee="je"+cstr(it)
bzzz="bzz"+cstr(it)
bh(it)=request(bhh)
mc(it)=request(mcc)
gg(it)=request(ggg)
jldw(it)=request(jldww)
rksl(it)=request(rksll)
dj(it)=request(djj)
je(it)=request(jee)
bzz(it)=request(bzzz)
sqlstr3(it)="INSERT into rkdj1(djbh,bh,mc,gg,jldw,rksl,dj,je,bzz) values ('"+djbh+"','"+bh(it)+"','"+mc(it)+"','"+gg(it)+"','"+jldw(it)+"',"+rksl(it)+","+dj(it)+","+je(it)+",'"+bzz(it)+"')"
set rs0=server.CreateObject("adodb.recordset")
rs0.open "select * from bgyp where bh='"+bh(it)+"'",conn,1,1
nsl=rs0("kcsl")+rksl(it)
rs0.close
rs0.open "update bgyp set kcsl="&nsl&" where bh='"+bh(it)+"'",conn,1,3
rs0.open sqlstr3(it),conn,1,3
next 展开
下面是我自己的代码:
set rs=server.CreateObject("adodb.recordset")
dim sqlstr2,sqlstr1
sqlstr1="select * from rkdj0 where djbh='"+djbh+"'"
rs.open sqlstr1,conn,1,3
if rs.eof then
rs.close
sqlstr2 = "INSERT into rkdj0(djbh,rkrq,zdrbh,zdr,gysbh,gys,bz,hjsl,hjje) values ('"+djbh+"','"+rkrq+"','"+zdrbh+"','"+zdr+"','"+gysbh+"','"+gys+"','"+bz+"',"+hjsl+","+hjje+")"
rs.Open sqlstr2,conn,1,1
dz98="入库登记"
xgbh98="入库单号:"&djbh
%>
<!--#include file="dlrz.asp"-->
<%
set rs5=server.CreateObject("adodb.recordset")
rs5.Open "select * from djbh",conn,1,3
while not rs5.eof
set rs2=server.CreateObject("adodb.recordset")
rs2.open "update djbh set rkd1="&(rs5("rkd1")+1),conn,1,3
rs5.movenext
wend
response.write("<script>alert('单据保存成功');document.location='viewbgyp.asp'</script>")
else
response.write ("<script>alert('单据编号重复');window.history.go(-1);</script>")
response.end
end if
%>
上面的程序
dim bh(50),mc(50),gg(50),jldw(50),rksl(50),dj(50),je(50),bzz(50),sqlstr3(50)
for it=0 to tot-1 step 1
bhh="bh"+cstr(it)
mcc="mc"+cstr(it)
ggg="gg"+cstr(it)
jldww="jldw"+cstr(it)
rksll="rksl"+cstr(it)
djj="dj"+cstr(it)
jee="je"+cstr(it)
bzzz="bzz"+cstr(it)
bh(it)=request(bhh)
mc(it)=request(mcc)
gg(it)=request(ggg)
jldw(it)=request(jldww)
rksl(it)=request(rksll)
dj(it)=request(djj)
je(it)=request(jee)
bzz(it)=request(bzzz)
sqlstr3(it)="INSERT into rkdj1(djbh,bh,mc,gg,jldw,rksl,dj,je,bzz) values ('"+djbh+"','"+bh(it)+"','"+mc(it)+"','"+gg(it)+"','"+jldw(it)+"',"+rksl(it)+","+dj(it)+","+je(it)+",'"+bzz(it)+"')"
set rs0=server.CreateObject("adodb.recordset")
rs0.open "select * from bgyp where bh='"+bh(it)+"'",conn,1,1
nsl=rs0("kcsl")+rksl(it)
rs0.close
rs0.open "update bgyp set kcsl="&nsl&" where bh='"+bh(it)+"'",conn,1,3
rs0.open sqlstr3(it),conn,1,3
next 展开
5个回答
展开全部
在你的插入语句前先加一个判断数据库是否存在记录,如存在,提示重复,不执行插入;反之执行插入语句
根据单据号查询
if 数据大于0 then
不执行
else
执行插入语句
end if
根据单据号查询
if 数据大于0 then
不执行
else
执行插入语句
end if
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
response.write ("<script>alert('单据编号重复');window.history.go(-1);</script>")
如果判断出重复后,把你控件的值全部设置为空, 在前面脚本再判断,如果单号为空,不能继续。
如果判断出重复后,把你控件的值全部设置为空, 在前面脚本再判断,如果单号为空,不能继续。
追问
怎么设啊,这是我在网上下的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>将数据写入到指定的数据库5252w我爱网</title>
</head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>将数据写入到指定的数据库5252w我爱网</title>
</head>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if rs.eof then
换成
if rs.eof and rs.bof then
换成
if rs.eof and rs.bof then
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然有点乱但没看出来问题
试试 rs.bof and rs.eof 吧
试试 rs.bof and rs.eof 吧
更多追问追答
追问
哪句啊 我就想知道 response.end 这个为什么没有运行呢
追答
response.write运行不运行都无所谓,因为你是先查询没有记录才添加,有记录就提示,那个insert动作是在没有记录的时候才有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询