就是你的 varchar有不是int类型的数据啊,比如a1111之类的数据

解决方案 »

  1.   

    CREATE PROCEDURE [EditImage]
    (
    @ObjectName CHAR(50),
    @ImageID  int,
     @Title CHAR(50)
    )
    AS
    Begin
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='+@Title+' where id='+Cast(@ImageID As Varchar) --轉換下 類型
    EXEC(@sqlcommand)
    End
    GO
      

  2.   

    CREATE PROCEDURE [EditImage]
    (
    @ObjectName CHAR(50),
    @ImageID  int,
     @Title CHAR(50)
    )
    AS 
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='+@Title+' where id='+rtrim(@ImageID)   --转换为字符串再连接
    EXEC(@sqlcommand)
    GO--貌似传参数位置错误
    EditImage 'prz3_body',3,'Goog'
      

  3.   

    再修改下CREATE PROCEDURE [EditImage]
    (
    @ObjectName Varchar(50), --最好改為Varchar,Char會自動在字符串後面補充空格
    @ImageID  int,
     @Title Varchar(50)
    )
    AS
    Begin
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='+@Title+' where id='+Cast(@ImageID As Varchar) --轉換下 類型
    EXEC(@sqlcommand)
    End
    GO
      

  4.   

    存储过程第2个参数是int型的,你传值的时候第2个值是字符型的,当然报错了
      

  5.   

    re:gahade
    列名 'Goog' 无效。
      

  6.   

    暈了,忘了處理字符串了。CREATE PROCEDURE [EditImage]
    (
    @ObjectName Varchar(50), --最好改為Varchar,Char會自動在字符串後面補充空格
    @ImageID  int,
     @Title Varchar(50)
    )
    AS
    Begin
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='''+@Title+''' where id='+Cast(@ImageID As Varchar) --轉換下 類型
    EXEC(@sqlcommand)
    End
    GO
      

  7.   

    这样改CREATE PROCEDURE [EditImage]
    (
    @ObjectName CHAR(50),
    @ImageID  int,
     @Title CHAR(50)
    )
    AS 
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='''+@Title+''' where id='+rtrim(@ImageID)   --转换为字符串再连接
    EXEC(@sqlcommand)
    GO--貌似传参数位置错误
    EditImage 'prz3_body',3,'Goog'
      

  8.   

    非常感谢大家的帮助,原本我以为在csdn上可以解决不了后面就顺便在microsoft partner newsgroup上问了,谢谢大家!~.thank so much!kaixin110 是一位Web工程师。他原来是在郑州一家软件公司做WebGIS(JSP+Servlet+Tomcat),对WebGIS的原理有一定研究,在狂热地编写代码之余,他喜欢打篮球并体验软件带给我们的惊喜 。目前在中国深圳一公司做Web开发(ASP.NET),如果您希望就本文与 kaixin110联系,则可以通过 [email protected]与他联系。
      

  9.   

    gahade(与君共勉) , CHAR最好改為varchar。
      

  10.   

    他是向name字段赋值,应该没关系吧.
    看楼主需要,也可以用rtrim(@Title)
      

  11.   

    這裡是沒關係,不過這裡最好盡量避免使用char類型。
      

  12.   

    CREATE PROCEDURE [EditImage]
    (
    @ObjectName CHAR(50),
    @ImageID  int,
     @Title CHAR(50)
    )
    AS 
    DECLARE @sqlcommand NVARCHAR(255)   
    SELECT @sqlcommand='Update '+RTRIM(@ObjectName) +' SET name='''+Rtrim(@Title)+''' where id='+Cast(@ImageID As Varchar)
    print @sqlcommand
    EXEC(@sqlcommand)
    GO
    Update prz3_body SET name='Goog' where id=3(1 row(s) affected)
      

  13.   

    什么时候Microsoft 推举mvp,我一定支持两位