我想从不同的SELECT查询中获取一个值,我创建了以下存储过程,但它一直给我一个错误,我将其添加到SQLDATAADAPTER中,当我测试查询添加值时,它给了我转换从nvarchar到int的错误,但我没有在存储过程中使用int。
所以我做了4个小选项来获得一个最终值(一个项目编号),每个参数都将绑定到一个Dropdownlist,它将传递ID,但是我不知道这是不是最好的方法,或者我应该做些不同的事情。
@Group as nvarchar(50),
@Type as nvarchar(50),
@Brand as nvarchar(50),
@Art as nvarchar(50),
@Final as nvarchar(50) OUTPUT
AS
begin
SET NOCOUNT ON;
SELECT @group = codigo_group FROM item_group WHERE (group_art_id = @group)
SELECT @type = codigo_type FROM item_type WHERE (type_art_id = @type)
SELECT @brand = codigo_brand FROM item_brand WHERE (brand_id = @brand)
SELECT @Art = format(COUNT(items.brand_id) +1, '0000') From items where brand_id=@brand
Select @Final= @group + '-' + @type + '-' + @brand + @Art
RETURN @Final
END
答案 0 :(得分:0)
我猜你有一个存储过程,因为没有返回声明。
只需删除最终的return
,因为该值会转到@final
。
您可以将其替换为return 0
或其他整数。存储过程返回一个必须为整数的状态值。
如果您想返回值,请使用create function
并删除输出参数。
答案 1 :(得分:0)
我没有足够的代表来简单评论,但我怀疑你收到错误的原因是因为你的程序中有RETURN @Final
。 RETURN是一个状态(INT)。
有关详细信息,请参阅以下内容:https://msdn.microsoft.com/en-us/library/ms378371(v=sql.110).aspx