gpt4 book ai didi

sql - 输出参数值错误

转载 作者:行者123 更新时间:2023-12-01 02:48:03 25 4
gpt4 key购买 nike

我将值传递给存储过程中的参数,并将其方向声明为 ParameterDirection.InputOutput。在存储过程中,该参数也被声明为 OUTPUT 参数,并且从存储过程返回的值是正确的。我知道这一点是因为我已经测试过自己执行存储过程并使用 PRINT 在整个过程中显示不同的值。此外,存储过程的最后一部分使用我期望返回的值将记录插入数据库,并且该值按预期出现。但是,当我在执行 SqlCommand 后尝试从参数中检索值时,该值仍然是我传递给存储过程的先前值。我以前做过这个,我确信我做的没有什么不同。这是我的命令的一部分:

Dim cmd As New SqlCommand("StoredProcedure", Conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@FileName", SqlDbType.NVarChar).Value = ImageFileNameNoExt
cmd.Parameters("@FileName").Direction = ParameterDirection.InputOutput
cmd.ExecuteNonQuery()
ImageFileName = cmd.Parameters("@FileName").Value

在这里,我期望 ImageFileName 是从存储过程返回的 @FileName 参数的值。但是,它仍然与首先传递给过程的 ImageFileNameNoExt 的值相同。

有人可以告诉我我做错了什么吗?谢谢。

编辑

ALTER PROCEDURE [dbo].[sp_ContentPages_Images_Update]
@PageID int
,@FileName nvarchar(100) OUTPUT
,@Ext nvarchar(100)
AS
BEGIN
SET NOCOUNT ON;

--As the FileName is a unique key, ensure that the value being entered into the database will be unique.
--If its not, then we can generate a new one
SET @FileName = REPLACE(@FileName, ' ', '-')
DECLARE @i int
,@FileNameCheck nvarchar(200)
SET @i = 2
SET @FileNameCheck = @FileName + @Ext
WHILE (SELECT COUNT(*)
FROM [ContentPages_Images]
WHERE [FileName]=@FileNameCheck
AND (@PageID IS NULL OR NOT @PageID=ID)
) > 0
BEGIN
SET @FileNameCheck = @FileName + '-' + CAST(@i as nvarchar(3)) + @Ext
SET @i = @i + 1
END

SET @FileName = @FileNameCheck

--Get new layout value
DECLARE @Layout int
SET @Layout = 1
IF (SELECT COUNT(*) FROM [ContentPages_Images] WHERE PageID=@PageID) > 0
BEGIN
SET @Layout = (SELECT MAX(Layout) FROM [ContentPages_Images] WHERE PageID=@PageID) + 1
END

INSERT INTO [ContentPages_Images]
(PageID, [FileName], [Layout])
VALUES
(@PageID, @FileName, @Layout)

END

最佳答案

这很可能是因为您没有为参数指定大小。尝试更改您的代码以包含参数的大小,如下所示:

cmd.Parameters.Add("@FileName", SqlDbType.NVarChar, 100).Value = ImageFileNameNoExt

关于sql - 输出参数值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6437570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com