注册 登录
编程论坛 ASP.NET技术论坛

求助:不允许从数据类型money到varchar的隐性转换,请使用convert函数来运行此查询

ershiyi 发布于 2008-05-06 11:31, 2856 次点击
CREATE PROCEDURE [BookModify]
  ( @BID      [int],
    @BISBN     [varchar](50),
    @BName     [varchar](50),
    @BAuthor   [varchar](50),
    @BTheme    [varchar](50),
    @BClassifyText  [varchar](50),
    @BIndex    [varchar](50),
    @BPress   [varchar](50),
    @BPrice  [money],
    @BSeriesName   [varchar](50),
    @BDescribe   [varchar](500))
AS UPDATE [LMS].[dbo].[Book]
SET  [BISBN]   =@BISBN,
    [BName]  =@BName,
    [BAuthor]  =@BAuthor,
    [BTheme]  =@BTheme,
    [BClassifyText]  =@BClassifyText,
    [BIndex]  =@BIndex,
    [BPress]  =@BPress,
    [BPrice]  =@BPrice,
    [BSeriesName]  =@BSeriesName,
    [BDescribe]  =@BDescribe
WHERE
  ( [BID]  =@BID)

在保存这个存储过程时出现:不允许从数据类型 varchar 到数据类型 money 的隐性转换.请使用 CONVERT 函数来运行此查询。

[[it] 本帖最后由 ershiyi 于 2008-5-6 11:32 编辑 [/it]]
4 回复
#2
hebingbing2008-05-07 06:56
@BPrice  [money],
改成 @BPrice  [varchar](50),
类型不匹配……
#3
ershiyi2008-05-07 11:08
[bo]以下是引用 [un]hebingbing[/un] 在 2008-5-7 06:56 的发言:[/bo]

@BPrice  [money],
改成 @  [varchar](50),
类型不匹配……

数据库中的BPrice类型需要将money改成varchar吗?
#4
hebingbing2008-05-07 11:46
你的数据库中BPrice是money?
那就不用改了,在你给存储过程传值的时候将传给@BPrice的值用强制类型转换
成money
#5
ershiyi2008-05-07 16:36
哦,谢谢
1