簡體   English   中英

如何讓C#Query組件識別從sql存儲過程中的臨時表返回的數據列

[英]How do I get the C# Query component to recognise columns returned data from a temporary table in a sql stored procedure

我已經創建了一個類似下面的存儲過程(我正在使用這個減少版本來嘗試解決我們的問題)。

CREATE PROCEDURE bsp_testStoredProc
AS
BEGIN

CREATE TABLE #tmpFiles  
(
    AuthorName NVARCHAR(50), 
    PercentageHigh INT
) 

-- Insert data into temp table

SELECT AuthorName, PercentageHigh FROM #tmpFiles 
ORDER BY PercentageHigh DESC

DROP TABLE #tmpFiles

RETURN 0
END

從我在VS2008中的C#代碼中,我嘗試使用Query組件和Use Existing Stored Procedure選項將其連接到DataTable / DataGridView以顯示結果。

但是,因為我從臨時表中進行選擇,所以在查詢組件屬性中,Visual Studio不會顯示從存儲過程返回的任何列。 我認為它確定正在使用的數據類型有困難,因為SP不是基於真實模式。

連接到從實際表中選擇的不同存儲過程會正確顯示列。

有誰知道這個嗎? 是否有某種提示我可以在某處明確說明將返回哪種數據?

提前致謝。

有關信息,您可能會考慮使用“表變量”而不是臨時表(即@FOO而不是#FOO) - 這可能會有所幫助,它肯定有助於一些tempdb問題。

使用臨時表 - 沒有辦法明確聲明SP模式。 我可能會建議在生成包裝類時使用SP的簡化版本 - 即讓它對正確的形狀進行簡單的SELECT。

或者,我會使用LINQ消耗UDF,里面確實有明確的架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM