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

yms123进来下,帮我看看这段代码,我是根据你的ASP分页修改来的,却没改成功

Kettyjin1983 发布于 2007-12-07 13:47, 1425 次点击
<[email=%@LANGUAGE=VBScript%]%@LANGUAGE=VBScript%[/email]>
<!--#include virtual ="/Include/Frequent.asp"-->
<!--#include file="CONDB.inc"-->
<html>
<head>
<meta http-equiv="Content-Type" c>
<meta name="GENERATOR" c>
<meta name="ProgId" c>
<title>Let's begin</title>
<script language="javascript">
function DelSel_Click()
{
    var ItemStr="";
 ItemStr=getSelItemStr();
    if(confirm('确定要删除选中的内容吗?'))
 {
     if(ItemStr=="")
  {
      alert('请先选择要删除的内容');
   return false;
  }
  document.SubForm.ItemString.value=ItemStr;
  document.SubForm.submit();
 }
}
function getSelItemStr()
{
    var ItemStr="";
 for(var i=0;i<this.SelId.length;i++)
 {
     if(this.SelId[i].checked)
      ItemStr+=this.SelId[i].value+"|";
 }
 if(ItemStr!="")
     ItemStr=ItemStr.substr(0,(ItemStr.length-1));
    return ItemStr;  
}
function SelAll_Click()
{
    for(var i=0;i<this.SelId.length;i++)
 {
     if(this.SelAll.checked)
        this.SelId[i].checked=true;
  else
     this.SelId[i].checked=false;   
 }
}
function Page_Load()
{
<%
    Dim ItemStr,tSql
    IF Request.Form("ItemString")<>"" Then
  
    ItemStr=Request.Form("ItemString")
    Response.Write "alert ItemStr;"
    ItemStr="ID="&Replace(ItemStr,"|"," Or ID=")
  tSql="delete from mtrack1 where autoid="&ItemStr
    Response.Write "alert('"&tSql&"');"
       conn.Execute tSql
    Response.Write "alert('删除成功!');"
 End IF
%>
}

</script>
</head>
<body bgcolor="#FFFFFF">
<!--#include file ="Head.htm"-->
<table width="733" border="1" cellspacing="0" cellpadding="0">
<tr>
 <td width="111" height="30">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica,sans-serif"><b><font size="2">ID</font></b></font></div>
   </td>
   <td width="111" height="30">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica,sans-serif"><b><font size="2">Barcode</font></b></font></div>
   </td>
   <td width="111">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica, sans-serif"><b>XCVR</b></font></div>
   </td>
   <td width="111">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica, sans-serif"><b>Product Name<br>
          </b></font></div>
   </td>
   <td width="111">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica, sans-serif"><b>manager date<br>
          </b></font></div>
   </td>
   <td width="111">
  <div align="center"><font color="#3366FF" face="Verdana, Arial, Helvetica, sans-serif"><b>delete what we choose<br>
          </b></font></div>
   </td>
</tr>
<%
MyAccount = GetAccount()
owner   = GetBadge(MyAccount)
mydate      =  now()
session("owner") = owner
'set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
'c
'conn.open = constr
rs.open "SELECT * from mtrack1 where owner= '"&owner&"' and loopcant=1", con,1,1
if rs.eof then
 Response.Write("<tr> <td colspan='5' height='30'><i>Sorry there is no barcode need you to accept or reject</i></td> </tr>")
Else
 
 Do While NOT rs.EOF
 id=Cint(rs("autoid"))
 'response.write id
 response.write "<tr><td>"&rs("autoid")&"</td><td>"&rs("Barcode")&"</td><td>"&rs("XCVR")&"</td><td>"&rs("product")&"</td><td>"&rs("mydate")&"</td>"%>
<td><input type="checkbox" name="SelId" value=<% =id %>></td></tr>
<%
   rs.MoveNext
 Loop
 rs.Close
 Set rs = Nothing
 Con.Close
 Set Con = Nothing
end if
%>
 <tr><td collspan="5"><input type="checkbox" name="SelAll"  >
全选</span>
<input type="button" name="DelSel"  value="删除选中项" >
        </td>
   </tr>
   </table>
<form name="SubForm" action="delete.asp" method="post" >
 <input type="hidden" name="ItemString" >
</form>


<!--#include file ="foot.htm"-->
 
</body>  
</html>
前面窗口的提示都成功的,但是在page_lode()这一块没有成功,没在数据库里删除数据啊,我不知道哪里的问题?
16 回复
#2
yms1232007-12-07 14:33
Response.Write "alert('"&tSql&"');"
打印的SQL语句有没有问题?用的是什么数据库?
#3
Kettyjin19832007-12-07 15:36
这是CONDB.inc的内容,是SQL, 谢谢
<%
'声明数据库连接字符串
   Dim ConStr
'声明数据库路径字符串
  
   Dim con,ConnectionDataBase
   
  c
'数据库连接方法代码
    Set con=Server.CreateObject("ADODB.Connection")
    On Error Resume Next
    con.Open ConStr
    If con.State = 1 Then
        ConnectionDataBase = True
    Else
        ConnectionDataBase = False
    End If
%>
#4
Kettyjin19832007-12-07 15:38
Response.Write "alert('"&tSql&"');" 根本就没有这个alert.
#5
yms1232007-12-07 15:45
<tr><td collspan="5"><input type="checkbox" name="SelAll" onClick="SelAll_Click()
;"  >
全选</span>
<input type="button" name="DelSel" onClick="DelSel_Click();"  value="删除选中项" >
按钮没有跟javascript函数进行关联。
#6
Kettyjin19832007-12-07 16:22
小声的问一句,怎么进行关联啊,我对javascript完全外行,
#7
yms1232007-12-07 16:30
<tr><td collspan="5"><input type="checkbox" name="SelAll"  >
全选</span>
<input type="button" name="DelSel"  value="删除选中项" >
将网页里上面的代码替换成下面的代码。
<tr><td collspan="5"><input type="checkbox" name="SelAll" onClick="SelAll_Click()
;"  >
全选</span>
<input type="button" name="DelSel" onClick="DelSel_Click();"  value="删除选中项" >
#8
Kettyjin19832007-12-07 21:15
yms123,还是不行,前面的confirm全都跳出来,却在page_load这一块里不行的,没有删除数据,也没有alert('"&tSql&"'),只是重新刷新了页面而已.
#9
yms1232007-12-07 21:39
function Page_Load()
{
alert("<%=Request.Form("ItemString")%>");
<%
    Dim ItemStr,tSql
    IF Request.Form("ItemString")<>"" Then
  
    ItemStr=Request.Form("ItemString")
    Response.Write "alert ItemStr;"
    ItemStr="ID="&Replace(ItemStr,"|"," Or ID=")
  tSql="delete from mtrack1 where autoid="&ItemStr
    Response.Write "alert('"&tSql&"');"
       conn.Execute tSql
    Response.Write "alert('删除成功!');"
End IF
%>
}
看看是否弹出空对话框。
#10
Kettyjin19832007-12-10 09:59
没有啊,现在前面confirm('确定要删除选中的内容吗?'),这个都没跳出来了。
#11
Kettyjin19832007-12-10 10:47
alert("<%=Request.Form("ItemString")%>");
ItemString没有跳出来。
#12
Kettyjin19832007-12-10 11:30
YMS123,我已经调出来了,找到错误的原因了,我想问下,在做这步操作的同时tSql="delete from mtrack1 where "&ItemStr,还要做delete from mtrack2 where barcode = '"&barcode"'.Barcode是select barcode from mtrack1 where id = '"&id&"',这该怎么写啊,望指导,非常感谢。
#13
yms1232007-12-10 17:42
楼主是说mtrack1和mtrack2是两个关系表?删除时要级联把关系表的数据一并删除?
#14
Kettyjin19832007-12-11 08:48
是的,他们是有关系的,通过Barcode关联在一起,该怎么删啊,
一张表是autoid, barcode, xcvr,product,loopcant,另一张表是autoid,barcode,owner,tobe,mydate.要同时删除这两张表上相同的barcode.
#15
yms1232007-12-11 16:44
用程序的办法倒是可以级联删除,问题是那样做大数据量时效率低下。
也可以使用在数据库端写存储过程,这样效率虽然高,但是对于Access数据库是不适合的。缺点是如果程序换数据库就要从些存储过程。
#16
Kettyjin19832007-12-14 16:34
存储过程该怎么写啊,一张表是autoid, barcode, xcvr,product,loopcant,另一张表是autoid,barcode,owner,tobe,mydate
同时删除一个制定的Barcode.
#17
yms1232007-12-14 17:04
楼主用的是什么数据库?
1