★★★简单的问题,高高的分!比较判断问题!★★★
核心语句如下:
set rs=server.createobject( "adodb.recordset ")
sql = "select * from KaoQin where yue= ' "&month(Request(riqi))& " ' and nian= ' "&year(Request(riqi))& " ' order by id desc "
rs.open sql,conn,1,3
if rs.eof and rs.bof then
rs.addnew
end if
rs( "nian ")=year(Request( "riqi "))
rs( "yue ")=month(Request( "riqi "))
rs.update
rs.close
我要判断的是,如果提交日期的“年和日”都与数据库已有信息相同,则不添加新的记录,仅仅为修改。
例如:2007年4月,发布过了,那么再提交2007年4月的信息,就是修改数据库,而不是增加数据库。
如果判断数据库中没有年为2007、月为4的记录后,则增加记录。
现在遇到的问题是,无论数据库中有没有相同的数据,程序都添加一条新记录!
也就是如下情况:
id nian yue mingcheng
1 2007 4 小明
2 2007 4 小红
3 2007 5 小刚
4 2007 5 小白
标注:Request( "riqi ")的格式为2007-04-03,并不是普通的日期格式。普通的日期格式为:2007-4-3。但是通过函数year()和month()输出的结果是一样的。
------解决方案--------------------if rs.eof and rs.bof then
rs.addnew
end if
改成
rs.addnew
你可以通過formatdatetime(Request( "riqi "),2)得到標準的格式
------解决方案--------------------SQL语句写错了,当然不行了
改为:
sql = "select * from KaoQin where year(nian)= ' "&year(Request(riqi))& " ' and month(yue)= ' "&month(Request(riqi))& " ' order by id desc
------解决方案--------------------把sql输出,看看是什么。
另外题外话:你如果只是实现添加,修改功能的话,灭有必要order by