~UPDATE语句实现不了更新.请大家帮忙.(或 求参考"在ASP+SQLsever同一页面中同时可以操作"更新","删除","显示")
下面代码显示正常,只是无法更新和删除.(问题可能在参数定义之中.谢谢大家先!)
存储过程:
删除部分:
---------------
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




