我正在尝试使用 SqlCommand 参数在输出参数中获取一些值。
存储过程运行良好,提供适当的记录。我也验证了它在 Sql Server 上的执行过程,以确保我做对了。
尽管如此,我还是无法在服务器端获得输出,它总是一无所获!调试时,我看到command.Parameters 的IsDirty属性设置为 True。
谁能告诉它是什么意思?
这是一些代码:
command.Parameters.Add("@count", SqlDbType.Int).Value = initialCountValue
command.Parameters("@count").Direction = ParameterDirection.Output
Dim dr = command.ExecuteReader()
newCountValue = Convert.ToInt32(command.Parameters("@count").Value)
这是程序示例:
CREATE PROCEDURE [dbo].[usp_some_procedure]
@filter INT
@count INT output
AS
BEGIN
DECLARE @filtered_ids TABLE(row_num INT IDENTITY(1,1), id INT primary key)
INSERT INTO @filtered_ids ( id )
SELECT id
FROM dbo.some_table
WHERE @filter = 0 OR table_field = @filter
ORDER BY id desc
SELECT @count = COUNT(*)
FROM @filtered_ids
SELECT some_table.*
FROM some_table
INNER JOIN @filtered_ids
ON some_table.id = @filtered_ids.id
END