日期:2014-05-18  浏览次数:20490 次

帮忙看看这个存储过程
我在前台设置了
cmd( "@AClass ")   =   0或1
cmd( "@GetID ")   =   前台提交获取的ID

然后   存储过程如下

CREATE   PROCEDURE   Int_Web_Site(
@AClass   bit,--添加类别
@GetID   int,--获取ID,更新
@WebName   nvarchar(50)--更新内容
)
AS
if   @AClass   =   0   BEGIN
INSERT   [Web_Site](WebName)   VALUES(@WebName)
end

if   @AClass   =   1   BEGIN
UPDATE   [Web_Site]   Set   WebName   = '+@WebName+ '   where   id= '+@GetID+ '
end

GO


===============================================
用SQL   查询分析器是成功执行了,为什么   我程序运行起来他说我

将   varchar   值   '+@GetID+ '   转换为数据类型为   int   的列时发生语法错误。
奇怪了



------解决方案--------------------

CREATE PROCEDURE Int_Web_Site(
@AClass bit,--添加类别
@GetID int,--获取ID,更新
@WebName nvarchar(50)--更新内容
)
AS
if @AClass = 0 BEGIN
INSERT [Web_Site](WebName) VALUES(@WebName)
end

if @AClass = 1 BEGIN
UPDATE [Web_Site] Set WebName =@WebName where id=@GetID --不要用‘+ +’
end

GO