请教各位一个插入数据表的问题
icejd 2005-09-19 09:36:23 有一充值系统,因为涉及到二级分类充值,所以有些麻烦
当小类为空时,将大类里面的ID用DO WHILE的方式插入到充值表里,现在的问题是,如果我为此大类中的一个小类充过值时,那么我再为此大类充值,可是如何来实现将已存在的小类更新,将不存在的小类插入到表中的一个新记录呢
比方说,父类是 小学一年级,他下面的子类为语文.数学,我以前已经为语文这个子类充过值,那么现在我又想为父类小学一年级充值,那么如何来更新子类语文这条记录,而将数学这条记录插入表中呢,源码如下:
if unitid="0" then '当子类为空时,为大类下所有子类充值
set Rs3=server.CreateObject("adodb.recordset")
sql3="select * from userczjl where username='"&username&"' and cznj="&type1&" and czkb="&unitid&"" '获取充值表中是否存在此大类下某小类ID
Rs3.open sql3,conn,1,1
if rs3.bof and rs3.eof then '不存在小类,将大类下所有子类插入充值表
set RsSort=server.createobject("adodb.recordset")
sqlSort="select * from NC_SoftSort where parentid="&type1&""
RsSort.open SqlSort,conn,1,1
Do while not RsSort.eof
set rs4=server.CreateObject("adodb.recordset")
Sql4="select * from userczjl"
Rs4.open Sql4,conn,1,3
Rs4.addnew
Rs4("username")=username
Rs4("cztime")=now
Rs4("cznj")=type1
Rs4("czkb")=RsSort("Sortid")
Rs4("dqtime")=now+rs("day")
Rs4("czfs")="A"
Rs4.update
Rs4.close
RsSort.movenext
loop
Else '存在小类,更新已存在的小类
set rs4=server.CreateObject("adodb.recordset")
Sql4="update userczjl set dqtime=dqtime+"&rs("day")&" where username='"&username&"' and cznj="&type1&""
Rs4.open Sql4,conn,1,3
end if
else '子类不为空,为该子类充值
set Rs3=server.CreateObject("adodb.recordset")
sql3="select * from userczjl where username='"&username&"' and cznj="&type1&" and czkb="&unitid&""
Rs3.open sql3,conn,1,1
if rs3.bof and rs3.eof then '判断是否已存在该子类ID,无,则插入一条新记录
set rs4=server.CreateObject("adodb.recordset")
Sql4="select * from userczjl"
Rs4.open Sql4,conn,1,3
Rs4.addnew
Rs4("username")=username
Rs4("cztime")=now
Rs4("cznj")=type1
Rs4("czkb")=unitid
Rs4("dqtime")=now+rs("day")
Rs4("czfs")="A"
Rs4.update
Rs4.close
Else '已存在,更新该条记录
set rs4=server.CreateObject("adodb.recordset")
Sql4="update userczjl set dqtime=dqtime+"&rs("day")&" where username='"&username&"' and cznj="&type1&" and czkb="&unitid&""
Rs4.open Sql4,conn,1,3
end if
end if
response.Write "<script>alert('恭喜,充值成功!');history.back();</Script>"