【发布时间】:2015-05-20 23:01:28
【问题描述】:
我有一个递归存储过程,它在我的层次结构表中查找错误。由于它是递归的,如果它发现一个错误,它会在该递归调用中被选中。因此,递归调用中有许多选择。我的问题是如何在 .NET 应用程序中捕获所有这些结果?我可以在 SSMS 中看到这个结果,但在 .NET 中我只能看到最新选择的最后一个结果。
我的过程(由于简单而省略了大部分代码 - 我只留下了基础知识,即发现错误时的递归选择):
CREATE PROCEDURE MyProcedure
@Node HierarchyID,
@Iterator int
AS
IF -- some condition
BEGIN
SELECT 'ERROR: ' + @ChildNumber + @Node
END
OPEN ChildRowsCursor
WHILE (@Iterator <= 100)
BEGIN
FETCH NEXT FROM ChildRowsCursor INTO @CurrentChildNode
EXEC dbo.MyProcedure @CurrentChildNode, @Iterator
SET @Iterator = @Iterator + 1
END
CLOSE ChildRowsCursor
DEALLOCATE ChildRowsCursor
END
编辑:
为了调用存储过程,我使用表适配器:
DataLayer.MyTableAdapters adapter = new DataLayer.MyTableAdapters();
adapter.GetAllErrors();
【问题讨论】:
-
您能否编辑您的问题并添加用于调用 SP 并捕获结果的 .Net 代码。
标签: sql .net sql-server sql-server-2008