CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

~UPDATE语句实现不了更新.请大家帮忙.(或 求参考"在ASP+SQLsever同一页面中同时可以操作"更新","删除","显示")

楼主SuperBJack(我想飞翔)2005-01-13 00:10:14 在 MS-SQL Server / 基础类 提问

下面代码显示正常,只是无法更新和删除.(问题可能在参数定义之中.谢谢大家先!)  
  存储过程:  
  删除部分:  
  ---------------  
  CREATE       procedure     Net_del  
  @tb   varchar(50),  
  @delid   int  
  AS  
  DECLARE   @sql   nvarchar(4000)  
  IF   ISNUMERIC   (@delid)=1  
  BEGIN  
  SET   @sql=   '   DELETE   *   FROM     '+@tb+'     '+'   where'+'     id='+CAST(@delid   AS   varchar)  
  EXEC(@sql)  
  END  
  GO  
  更新部分:  
  ----------------  
  CREATE       procedure     Net_update  
  @tb   varchar(50),  
  @delid   int,  
  @Desino   nvarchar(50)  
  AS  
  DECLARE   @sql   nvarchar(4000)  
  IF   ISNUMERIC   (@delid)=1  
  BEGIN  
   
  SET   @sql=   '   UPDATE     '+@tb+'     SET     Desino=   '+@Desino+'     where     id='+CAST(@delid   AS   varchar)  
   
  EXEC(@sql)  
  END  
  GO  
  -----------------  
  ASP文档内容:  
  -------------------  
  <%  
    Rid=trim(request("Rid"))  
    if   Rid<>empty   then   svid=Rid    
    idstr=request("hid")  
   
  dim   objCnn,objCmd,objRS,wstr,objFSObg  
  set   objCmd=Server.CreateObject("Adodb.Command")    
  objCmd.ActiveConnection="driver={sql   server};server=XXXXX;uid=sa;pwd=XXXX;database=XXXX;"      
  objCmd.Parameters.Append   objCmd.CreateParameter("@tb",adVarChar,adParamInput,50)  
  objCmd.Parameters.Append   objCmd.CreateParameter("@delid",adInteger,adParamInput)  
  objCmd.Parameters.Append   objCmd.CreateParameter("@collist",adVarChar,adParamInput,800)  
  objCmd.Parameters.Append   objCmd.CreateParameter("@picpath",adInteger,adParamOutput)  
      if   idstr<>empty   then    
    idArr=split(idstr,"-")  
  svid=idArr(0)  
  if   idArr(1)="BtnDL"   then    
  objCmd.CommandText="Net_sel"    
  objCmd.Commandtype=adCmdStoredProc    
  objCmd("@tb")="products"  
  objCmd("@collist")="Picture"  
  objCmd("@delid")=cint(idArr(0))  
  set   objRS=objCmd.Execute    
  bgpic=objrs("Picture")  
  Set   objCmd   =   nothing  
  objrs.close  
  set   objrs=nothing  
  objCmd.CommandText="Net_del"    
  objCmd.Commandtype=adCmdStoredProc    
  objCmd("@tb")="products"  
  objCmd("@collist")="*"  
  objCmd("@delid")=cint(idArr(0))  
  objCmd.Execute    
  Set   objCmd   =   nothing  
  end   if  
  if   bgpic<>empty   then    
  Set   objFSObg   =   Server.CreateObject("Scripting.FileSystemObject")  
                  If   objFSObg.FileExists(Server.MapPath(bgpic))=   true   Then   objFSObg.DeleteFile(Server.MapPath(bgpic))  
  set   objFSObg=Nothing  
  end   if  
  if   idArr(1)="BtnRP"   then    
  pn_Des=trim(request("sh_Des"))'有得到提交回的值  
  objCmd.Parameters.Append   objCmd.CreateParameter("@Desino",adVarChar,adParamInput,50,pn_Des)  
  objCmd.CommandText="Net_update"    
  objCmd.Commandtype=adCmdStoredProc  
  objCmd("@tb")="products"  
  objCmd("@delid")=cint(idArr(0))'可以获取数组数值  
  objCmd.Execute    
  Set   objCmd   =   nothing  
  end   if  
    end   if  
    '''''下面显示部分正常  
  objCmd.CommandText="Net_sel"    
  objCmd.Commandtype=adCmdStoredProc    
  objCmd("@tb")="products"  
  objCmd("@collist")="*"  
  objCmd("@delid")=int(Rid)  
  set   objRS=objCmd.Execute    
  if   not   objrs.eof   then  
  sh_Des=objrs("Desino")  
  sh_Sty=objrs("Styles")  
  sh_Mat=objrs("Material")  
  sh_Sto=objrs("Stone")  
  sh_Sex=objrs("Sex")  
  sh_area=objrs("Poparea")  
  sh_year=objrs("Popyear")  
  sh_Wfr=objrs("Wfrm")  
  sh_Wma=objrs("Wmade")  
  sh_Scr=objrs("Scription")  
  sh_Pic=objrs("Picture")  
  end   if  
  objrs.close  
  set   objrs=nothing  
  Set   objCmd.ActiveConnection   =   nothing  
  Set   objCmd   =   nothing  
  %>  
  问题点数:50、回复次数:4Top

1 楼cemma(佩)回复于 2005-01-13 09:05:14 得分 20

删除语句:SET   @sql=   '   DELETE   *   FROM     '+@tb+'     '+'   where'+'     id='+CAST  
  应该为SET   @sql=   '   DELETE   FROM     '+@tb+'     '+'   where'+'     id='+CASTTop

2 楼Softlee81307(孔腎)回复于 2005-01-13 09:33:33 得分 29

---------------  
  CREATE       procedure     Net_del  
  @tb   varchar(50),  
  @delid   int  
  AS  
  DECLARE   @sql   nvarchar(4000)  
  IF   ISNUMERIC   (@delid)=1  
  BEGIN  
  SET   @sql=   '   DELETE     FROM     '+@tb+'     '+'   where'+'     id='+CAST(@delid   AS   varchar(10))  
  EXEC(@sql)  
  END  
  GO  
  更新部分:  
  ----------------  
  CREATE       procedure     Net_update  
  @tb   varchar(50),  
  @delid   int,  
  @Desino   nvarchar(50)  
  AS  
  DECLARE   @sql   nvarchar(4000)  
  IF   ISNUMERIC   (@delid)=1  
  BEGIN  
   
  SET   @sql=   '   UPDATE     '+@tb+'     SET     Desino=   '+@Desino+'     where     id='+CAST(@delid   AS   varchar(10))  
   
  EXEC(@sql)  
  END  
  GO  
  Top

3 楼floatyzq(float)回复于 2005-01-13 09:49:59 得分 1

IF   ISNUMERIC   (@delid)=1  
   
  是不是有点问题呀,ISNUMERIC   (@delid)   的值为True时,转换为int   则为-1  
                                                                                    为False时,转换为int   则为0Top

4 楼SuperBJack(我想飞翔)回复于 2005-01-13 21:56:07 得分 0

以上的都不是,能不能再留意一下,谢谢了!Top

相关问题

  • 更新语句
  • 简单的更新语句!
  • 求一更新SQL语句
  • update语句更新不了
  • 更新表SQL语句
  • SQL 语句更新问题!~~~
  • sql语句更新问题
  • 求一更新语句
  • 求一更新语句(急)
  • 求一条更新语句

关键词

  • objcmd
  • delid
  • objrs
  • idarr
  • desino
  • bgpic
  • objfsobg
  • 删除
  • collist
  • tb

得分解答快速导航

  • 帖主:SuperBJack
  • cemma
  • Softlee81307
  • floatyzq

相关链接

  • SQL Server类图书

广告也精彩

反馈

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