ASP批量修改数据库记录发现一个奇怪的问题,高手进来帮忙解答一下,谢谢!
批量修改数据.rar
(7.86 KB)
附件里是我的数据库跟代码,可以下载调试。
数据库:db.mdb
表:kehu
字段:
修改页面index.asp代码如下:
程序代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>批量读取数据</title> </head> <body> <form name="form1" method="post" action="?action=edit"> <table border="0" cellspacing="1" cellpadding="0" width="700" align="center"> <tr align="center"> <td>客户名称</td> </tr> <% strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.mappath("db.mdb")+";Persist Security Info=False" set conn = Server.CreateObject("ADODB.Connection") conn.open strConn sql="select * from kehu order by ID asc" set rs=server.CreateObject("adodb.recordset") rs.open sql,conn,1,1 if rs.bof and rs.eof then response.Write("没有找到您需要的记录!") else do while not rs.eof %> <tr> <td align="center"><input name="mc" type="text" value="<%=rs("mc")%>" /><input name="id" type="hidden" value="<%=rs("id")%>"/></td> </tr> <% rs.movenext loop end if rs.close set rs=nothing %> </table> <p align="center"> <input type="submit" name="tsub" value="修改"> <input type="reset" name="Submit" value="重置" /> </p> </form> </body> </html> <% if request("action")="edit" then '=========================================================== id=split(trim(request.Form("id")),",") mc=split(trim(request.Form("mc")),",") for i=0 to ubound(id) set rs=server.createobject("adodb.recordset") sql="select * from kehu where id="&id(i) rs.open sql,conn,1,3 rs("mc")=trim(mc(i)) rs.update next rs.close set rs=nothing '================================================================= conn.close set conn=nothing response.write "<SCRIPT language=JavaScript>alert('批量修改成功!');window.location.href='index.asp'</SCRIPT>" end if %>
现在的问题是这样:
1、如果数据库中只有一条记录,我在index.asp页面把文本框中的内容清空的话修改就会出错,但是文本框的内容不为空就能正常修改。
2、如果数据库中有多条记录,我把文本框里面的内容都清空了,修改也没问题。
高手帮忙解答一下。