CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

sauce(思归)请进!

楼主marf_cn(吗啡)2002-05-22 16:08:21 在 Web 开发 / ASP 提问

 
  ----------------------------------------------------------------  
  把你的编码以及数据库表的格式贴出来  
  /--------------------  
  order.htm页面:  
  <HTML>  
  <HEAD>  
  <TITLE>   New   Document   </TITLE>  
  </HEAD>  
   
  <BODY>  
  <H3><CENTER><FONT   face="黑体"   COLOR="">教室预定申请表单</FONT></CENTER></H3>  
  <HR>  
  <FONT   SIZE=smaller   COLOR="blue">请填写申请表单</FONT>  
  <center>  
  <FORM     ACTION="submit.asp"   METHOD=post>  
  <caption><b>申请表</b></caption>  
  <TABLE     border=0>  
  <TR>  
  <TD   align=right>申请人</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtuser"></TD>  
  <td><FONT     COLOR="red">*   必填</FONT></td>  
  </TR>  
  <TR>  
  <TD     align=right>申请教室</TD>  
  <TD><SELECT   NAME="optclsroom"><option>计算机教室(机房)       <option>语音教室  
        <option>多功能教室       <option>生物实验室       <option>化学实验室       <option>物理实验室  
                          </SELECT></TD>  
  </TR>  
  <TR>  
  <TD     align=right>科目</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtsubject"></TD>  
        <td><FONT     COLOR="red">*   必填</FONT></td>  
    </TR>  
  <TR>  
  <TD     align=right>使用时间</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtusingtime">      
  <td><FONT     COLOR="red">*   必填   (yyyy-m-dd请按此格式填写)</FONT></td>  
  </TR>  
  <TR>  
            <TD   align=right>星期</TD>  
    <TD><SELECT   NAME="optweek"><option>一   <option>二<option>三  
  <option>四   <option>五   <option>六   <option>日  
            </SELECT>  
    </TD>  
  </TR>  
  <TR>  
  <TD     align=right>第几节课</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtclass"></TD>  
  <td><FONT     COLOR="red">*   必填</FONT></td>  
  </TR>  
  <TR>  
  <TD     align=right>使用设备</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtdevice"></TD>  
  </TR>  
  <TR>  
  <TD     align=right>实验课题或内容</TD>  
  <TD><INPUT   TYPE="text"   NAME="txtitle"></TD>  
  </TR>  
  <TR>  
  <TD     align=right><INPUT   TYPE="submit"   value="提交"></TD>  
  <TD><INPUT   TYPE="reset"   value="重填"></TD>  
  </TR>  
  </TABLE>  
   
  </FORM>  
       
  </center>  
  </BODY>  
  </HTML>  
  /--------------------  
  submit.asp页面:  
  <%   on   error   resume   next  
         
        set   cn=server.createobject("adodb.connection")  
        cn.open   "DSN=webdb"  
        set   rs=server.createobject("adodb.recordset")  
   
   
  while   not   rs.eof    
  if   request("optclsroom")=rs("classroom")   and   request("txtusingtime")=rs   ("usingtime")   and   request("txtclass")=rs("class")   then  
          response.write"该教室已预定!"  
          rs.movenext  
  else  
                    '插入数据  
    data="   '   "   &request.Form("txtuser")&"   ','   "   &request.Form("optclsroom")&_  
              "   ','   "   &request.Form("txtsubject")&_  
              "   ','   "   &request.Form("txtusingtime")&_  
              "   ','   "   &request.Form("optweek")&"   ','   "   &request.Form("txtclass")&_  
            "   ','   "   &request.Form("txtdevice")&"   ','   "   &request.Form("txtitle")&_  
            "   ','   "   &now&"   '   "  
   
  strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("&data&")   "  
  cn.execute(strsql)  
     
  end   if  
  wend      
  %>  
       
  <HTML>  
  <HEAD>  
  <TITLE>   教室预定   </TITLE>  
   
  </HEAD>  
   
  <BODY>  
  <FONT   SIZE=smaller   COLOR="blue">预定成功!</FONT>  
  <a   href="show.asp">查看</a>  
  </BODY>  
  </HTML>  
  <%  
  cn.close  
  %>  
   
  数据库格式:  
          字段               数据类型         说明  
          User               文本                 用户  
  主键Classroom     文本                 要使用的教室  
          Subject         文本                 科目  
  主键UsingTime     时间                 使用时间  
  主键Class             文本                 在usingtime的第几节课使用  
          device           文本                 设备  
          title             文本                 课题  
          week               文本                 星期几  
          apptime         时间                 申请时间  
  /----------  
  设置三个主键是约束记录的唯一性,  
  以上的代码基本实现了功能,但报错时是“Microsoft   OLE   DB   Provider   for   ODBC   Drivers   错误   '80040e14'    
   
  [Microsoft][ODBC   Microsoft   Access   Driver]   由于将在索引、   主关键字、或关系中创建重复的值,请求对表的改变没有成功。   改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。    
   
  ”,而不是我写的response里的内容。  
  多谢你了!你真的很热心!下次的MVP一定投你一票。 问题点数:100、回复次数:13Top

1 楼jxwangzhigang(一棵草)回复于 2002-05-22 16:27:08 得分 10

这条strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("&data&")   "  
  sql语句就不正确!Top

2 楼jxwangzhigang(一棵草)回复于 2002-05-22 16:30:19 得分 0

这条strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("&data&")   "  
  sql语句就不正确!Top

3 楼marf_cn(吗啡)回复于 2002-05-22 16:54:58 得分 0

jxwangzhigang(一棵草):  
  可是可以加入数据的啊,不知哪不对,请指明!多谢了。Top

4 楼jxwangzhigang(一棵草)回复于 2002-05-22 16:59:13 得分 0

哦!  
  你的rs对象好像连数据集都没有打开!Top

5 楼jxwangzhigang(一棵草)回复于 2002-05-22 17:02:09 得分 0

哦!  
  对了!你的rs对象好像连数据集都没有打开吧!  
  怎么能判断rs.eof呢?Top

6 楼marf_cn(吗啡)回复于 2002-05-22 17:15:01 得分 0

我没用sql语句,只是在if中判断,所以没有写。  
  请问你有什么好的解决方法吗?Top

7 楼jxwangzhigang(一棵草)回复于 2002-05-22 17:21:29 得分 0

你要判断的话也要先打开数据集的嘛!  
  要不然的话  
  sql=select   *   from   table   where   classroom='"&request("optclsroom")&"'and   usingtime='"&request("txtusingtime")&"'   and   class='"&request("txtclass")&"'  
  set   rs=server.createobject("adodb.recordset")  
  set   rs=cn.execute(sql)  
  if   not   rs.eof   then    
      '添加数据  
  else    
        '显示已经存在  
  end   ifTop

8 楼beyond_xiruo(CorruptionException)回复于 2002-05-22 17:44:52 得分 5

假如重复数据,你必须使所有字段的类型同意并且类型要符合插入数据类型!Top

9 楼beyond_xiruo(CorruptionException)回复于 2002-05-22 17:45:48 得分 0

加入重复数据,你必须使所有字段的类型统一并且类型要符合插入数据类型!Top

10 楼marf_cn(吗啡)回复于 2002-05-23 10:09:55 得分 0

jxwangzhigang(一棵草)   :  
  你的代码可以加入数据库,但不显示页面。(记录不重复不显示,重复也不报错)Top

11 楼marf_cn(吗啡)回复于 2002-05-23 10:14:49 得分 0

beyond_xiruo(希偌):  
  你说   的“必须使所有字段的类型统一并且类型要符合插入数据类型!  
  ”该如何作?Top

12 楼jxwangzhigang(一棵草)回复于 2002-05-23 10:18:08 得分 0

if   rs.recordcount=0   then    
      '添加数据  
  else    
        '显示已经存在  
  end   if  
  试试Top

13 楼saucer(思归)回复于 2002-05-23 10:49:21 得分 85

你的问题大了  
   
  首先,你不应该用,  
  on   error   resume   next  
   
  用了此语句,你有问题也不知道出在哪了  
   
  第二,你不查询,你怎么知道纪录存在不存在?  
   
  第三,你的while   语句也有问题  
   
  试试  
   
  <%    
        set   cn=server.createobject("adodb.connection")  
        cn.open   "DSN=webdb"  
        set   rs=server.createobject("adodb.recordset")  
        rs.open   "select   *   from   tbl_application",cn  
        bExist   =   false  
        do   while   not   rs.eof    
          if   request("optclsroom")=rs("classroom")   and   cdate(request("txtusingtime"))   =   rs("usingtime")   and   request("txtclass")=rs("class")   then  
                bExist   =   true  
                exit   do  
          end   if    
            rs.movenext  
      loop  
      rs.close    
      set   rs   =   nothing  
   
      if   bExist   then  
  %>  
  该教室已预定!  
  <%  
      else  
        data="   '"   &   request.Form("txtuser")&   "','"   &request.Form("optclsroom")   &_  
              "','"   &request.Form("txtsubject")   &_  
              "','"   &request.Form("txtusingtime")   &_  
              "','"   &request.Form("optweek")&"','"   &   request.Form("txtclass")&_  
            "','"   &request.Form("txtdevice")   &   "','"   &request.Form("txtitle")&_  
            "','"   &now   &"'   "  
        strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("   &   data   &   ")   "  
        cn.execute(strsql)  
      end   if  
      cn.close  
      set   cn=nothing  
  %>  
  <HTML>  
  <HEAD>  
  <TITLE>   教室预定   </TITLE>  
  </HEAD>  
  <BODY>  
  <FONT   SIZE=smaller   COLOR="blue">预定成功!</FONT>  
  <a   href="show.asp">查看</a>  
  </BODY>  
  </HTML>  
   
  但这答案还不太好,你应该这么做  
   
  <%    
        set   cn=server.createobject("adodb.connection")  
        cn.open   "DSN=webdb"  
        set   rs=server.createobject("adodb.recordset")  
        sql   =   "select   count(*)   as   count   from   tbl_application   "  
        sql   =   sql   &   "   where   classroom   =   '"   &   replace(request("optclsroom"),"'","''")   &   "'   "  
        sql   =   sql   &   "   and   usingtime   =   #"   &   replace(request("txtusingtime"),"'","''")   &   "#   "  
        sql   =   sql   &   "   and   class   =   '"   &   replace(request("txtclass"),"'","''")   &   "'   "  
        rs.open   sql,   cn  
        bExist   =   false  
        if   rs("count")   >   0   then  
              bExist   =   true  
        end   if  
      rs.close    
      set   rs   =   nothing  
   
      if   bExist   then  
  %>  
  该教室已预定!  
  <%  
      else  
        data="   '"   &   request.Form("txtuser")&   "','"   &request.Form("optclsroom")   &_  
              "','"   &request.Form("txtsubject")   &_  
              "','"   &request.Form("txtusingtime")   &_  
              "','"   &request.Form("optweek")&"','"   &   request.Form("txtclass")&_  
            "','"   &request.Form("txtdevice")   &   "','"   &request.Form("txtitle")&_  
            "','"   &now   &"'   "  
   
        strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("   &   data   &   ")   "  
        cn.execute(strsql)  
      end   if  
      cn.close  
      set   cn=nothing  
  %>      
  <HTML>  
  <HEAD>  
  <TITLE>   教室预定   </TITLE>  
  </HEAD>  
  <BODY>  
  <FONT   SIZE=smaller   COLOR="blue">预定成功!</FONT>  
  <a   href="show.asp">查看</a>  
  </BODY>  
  </HTML>  
   
   
  但考虑你的三个参数是主键,最简单的方法是这么做  
  <%    
        set   cn=server.createobject("adodb.connection")  
        cn.open   "DSN=webdb"  
        data="   '"   &   request.Form("txtuser")&   "','"   &request.Form("optclsroom")   &_  
              "','"   &request.Form("txtsubject")   &_  
              "','"   &request.Form("txtusingtime")   &_  
              "','"   &request.Form("optweek")&"','"   &   request.Form("txtclass")&_  
            "','"   &request.Form("txtdevice")   &   "','"   &request.Form("txtitle")&_  
            "','"   &now   &"'   "  
   
        strsql="insert   into   tbl_application(User,Classroom,Subject,UsingTime,Week,Class,Device,Title,Apptime)     values("   &   data   &   ")   "  
   
        on   error   resume   next  
        cn.execute(strsql)  
        cn.close  
        set   cn=nothing  
        if   err.number   <>   0   then  
  %>  
  该教室已预定!  
  <%  
        end   if  
  %>      
  <HTML>  
  <HEAD>  
  <TITLE>   教室预定   </TITLE>  
  </HEAD>  
  <BODY>  
  <FONT   SIZE=smaller   COLOR="blue">预定成功!</FONT>  
  <a   href="show.asp">查看</a>  
  </BODY>  
  </HTML>  
   
   
  Top

14 楼marf_cn(吗啡)回复于 2002-05-23 14:38:54 得分 0

问题已经按saucer的方法解决,太好了!  
  这个问题已经困扰我好几天了,终于完成了。非常感激你,saucer,真不知该说什么好。  
  也非常感谢大家的帮助!!!  
  要不是可用分不多了,一定多放一些。Top

相关问题

  • 思归请进
  • saucer(思归) 请进!!!!
  • saucer(思归) 请进!
  • saucer(思归)请进!!!
  • saucer(思归) 请进了。
  • saucer(思归)!!!高手请进!!
  • saucer(思归)等高手请进
  • 孟子 思归等高手请进!!!!
  • dllimport 问题 ,思归等高手请进!!!
  • 请教思归(saucer)

关键词

得分解答快速导航

  • 帖主:marf_cn
  • jxwangzhigang
  • beyond_xiruo
  • saucer

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo